/*
* Mini ps implementation(s) for busybox
*
- * Copyright (C) 1999,2000 by Lineo, inc. Written by Erik Andersen
- * <andersen@lineo.com>, <andersee@debian.org>
+ * Copyright (C) 1999,2000,2001 by Lineo, inc.
+ * Written by Erik Andersen <andersen@lineo.com>, <andersee@debian.org>
*
*
* This contains _two_ implementations of ps for Linux. One uses the
*
*/
-#include "busybox.h"
#include <stdio.h>
+#include <stdlib.h>
#include <unistd.h>
#include <dirent.h>
#include <errno.h>
#include <fcntl.h>
#include <ctype.h>
+#include <string.h>
#include <sys/ioctl.h>
+#include "busybox.h"
#define BB_DECLARE_EXTERN
#define bb_need_help
#include "messages.c"
* the one using the /proc virtual filesystem.
*/
-#if ! defined BB_FEATURE_USE_PROCFS
-#error Sorry, I depend on the /proc filesystem right now.
-#endif
-
typedef struct proc_s {
char
cmd[16]; /* basename of executable file in call to exec(2) */
if (tmp)
sscanf(tmp, "Pid:\t%d\n" "PPid:\t%d\n", &P->pid, &P->ppid);
else
- error_msg("Internal error!\n");
+ error_msg("Internal error!");
/* For busybox, ignoring effective, saved, etc */
tmp = strstr(S, "Uid:");
if (tmp)
sscanf(tmp, "Uid:\t%d", &P->ruid);
else
- error_msg("Internal error!\n");
+ error_msg("Internal error!");
tmp = strstr(S, "Gid:");
if (tmp)
sscanf(tmp, "Gid:\t%d", &P->rgid);
else
- error_msg("Internal error!\n");
+ error_msg("Internal error!");
}
dir = opendir("/proc");
if (!dir)
- error_msg_and_die("Can't open /proc\n");
+ error_msg_and_die("Can't open /proc");
#ifdef BB_FEATURE_AUTOWIDTH
ioctl(fileno(stdout), TIOCGWINSZ, &win);
#endif
if (argc > 1 && **(argv + 1) == '-')
- usage(ps_usage);
+ show_usage();
/* open device */
fd = open(device, O_RDONLY);