aboutsummaryrefslogtreecommitdiff
path: root/toys/other/pwdx.c
blob: 2a72dba3a43d82d7a1156c4b142dbc657dda8c92 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
/* 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 = toybuf;

    sprintf(toybuf, "/proc/%d/cwd", atoi(*optargs));
    if (!readlink0(path, toybuf, sizeof(toybuf))) {
      path = strerror(errno);
      toys.exitval = 1;
    }

    xprintf("%s: %s\n", *optargs, path);
  }
}