/* 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 = xmprintf("/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);
}
}