xref: /aosp_15_r20/external/toybox/toys/other/pwdx.c (revision cf5a6c84e2b8763fc1a7db14496fd4742913b199)
1 /* pwdx.c - report current directory of a process.
2  *
3  * Copyright 2013 Lukasz Skalski <[email protected]>
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 = toybuf;
24 
25     sprintf(toybuf, "/proc/%d/cwd", atoi(*optargs));
26     if (!readlink0(path, toybuf, sizeof(toybuf))) {
27       path = strerror(errno);
28       toys.exitval = 1;
29     }
30 
31     xprintf("%s: %s\n", *optargs, path);
32   }
33 }
34