Mercurial > hg > toybox
view toys/other/pwdx.c @ 1150:ac4a0cde89c2 draft
Don't permute toys.optargs, cleanup code (xexec()) can free it.
author | Rob Landley <rob@landley.net> |
---|---|
date | Thu, 19 Dec 2013 21:38:12 -0600 |
parents | 75f5e63d79c3 |
children | 0752b2d58909 |
line wrap: on
line source
/* pwdx.c - report current directory of a process. * * Copyright 2013 Lukasz Skalski <l.skalski@partner.samsung.com> USE_PWDX(NEWTOY(pwdx, "<1a", TOYFLAG_USR|TOYFLAG_BIN)) config PWDX bool "pwdx" default y help usage: pwdx PID... Print working directory of processes listed on command line. */ #include "toys.h" void pwdx_main(void) { char **optargs; for (optargs = toys.optargs; *optargs; optargs++) { char *path; int num_bytes; path = xmsprintf("/proc/%s/cwd", *optargs); num_bytes = readlink(path, toybuf, sizeof(toybuf)-1); free(path); if (num_bytes==-1) { path = strerror(errno); toys.exitval = 1; } else { path = toybuf; toybuf[num_bytes] = 0; } xprintf("%s: %s\n", *optargs, path); } }