1 /* pwdx.c - report current directory of a process.
2  *
3  * Copyright 2013 Lukasz Skalski <l.skalski@partner.samsung.com>
4 
5 USE_PWDX(NEWTOY(pwdx, "<1a", TOYFLAG_USR|TOYFLAG_BIN))
6 
7 config PWDX
8   bool "pwdx"
9   default y
10   help
11     usage: pwdx PID...
12 
13     Print working directory of processes listed on command line.
14 */
15 
16 #include "toys.h"
17 
pwdx_main(void)18 void pwdx_main(void)
19 {
20   char **optargs;
21 
22   for (optargs = toys.optargs; *optargs; optargs++) {
23     char *path;
24     int num_bytes;
25 
26     path = xmprintf("/proc/%s/cwd", *optargs);
27     num_bytes = readlink(path, toybuf, sizeof(toybuf)-1);
28     free(path);
29 
30     if (num_bytes==-1) {
31       path = strerror(errno);
32       toys.exitval = 1;
33     } else {
34       path = toybuf;
35       toybuf[num_bytes] = 0;
36     }
37     xprintf("%s: %s\n", *optargs, path);
38   }
39 }
40