On Wednesday 09 March 2011 03:58, [email protected] wrote:
> Hi,
>
> I have ported pwdx from procps 3.2.8 to busybox. I have tested it and
> I would appreciate review and comments.
function old new delta
pwdx_main - 230 +230
packed_usage 28237 28268 +31
applet_names 2391 2396 +5
applet_main 1392 1396 +4
applet_nameofs 696 698 +2
applet_install_loc 174 175 +1
------------------------------------------------------------------------------
(add/remove: 2/0 grow/shrink: 5/0 up/down: 273/0) Total: 273 bytes
Can be made smaller:
//usage:#define pwdx_trivial_usage
//usage: "PID..."
//usage:#define pwdx_full_usage "\n\n"
//usage: "Show current directory for PIDs\n"
#include "libbb.h"
int pwdx_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
int pwdx_main(int argc UNUSED_PARAM, char **argv)
{
opt_complementary = "-1";
getopt32(argv, "");
argv += optind;
do {
char buf[sizeof("/proc/%u/cwd") + sizeof(int)*3];
unsigned pid;
char *s;
char *arg = *argv;
// Allowed on the command line:
// /proc/NUM
// NUM
if (strncmp(arg, "/proc/", 6) == 0)
arg += 6;
pid = bb_strtou(arg, NULL, 10);
if (errno)
bb_error_msg_and_die("invalid process id: '%s'", arg);
sprintf(buf, "/proc/%u/cwd", pid);
s = xmalloc_readlink(buf);
// "pwdx /proc/1" says "/proc/1: DIR", not "1: DIR"
printf("%s: %s\n", *argv, s ? s : strerror(errno == ENOENT ?
ESRCH : errno));
free(s);
} while (*++argv);
return EXIT_SUCCESS;
}
function old new delta
pwdx_main - 197 +197
packed_usage 28237 28261 +24
applet_names 2391 2396 +5
applet_main 1392 1396 +4
applet_nameofs 696 698 +2
applet_install_loc 174 175 +1
------------------------------------------------------------------------------
(add/remove: 2/0 grow/shrink: 5/0 up/down: 233/0) Total: 233 bytes
--
vda
_______________________________________________
busybox mailing list
[email protected]
http://lists.busybox.net/mailman/listinfo/busybox