# HG changeset patch # User Rob Landley # Date 1378116365 18000 # Node ID 5b6027634d01f98a63c7310dcdb6ebcce720f244 # Parent af1780148f7c4aa26a889da9f07fcea01c3fd00e pwdx by Lukasz Skalski. diff -r af1780148f7c -r 5b6027634d01 toys/other/pwdx.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/toys/other/pwdx.c Mon Sep 02 05:06:05 2013 -0500 @@ -0,0 +1,40 @@ +/* pwdx.c - report current directory of a process. + * + * Copyright 2013 Lukasz Skalski + +USE_PWDX(NEWTOY(pwdx, "<1a", TOYFLAG_USR|TOYFLAG_BIN)) + +config PWDX + bool "pwdx" + default y + help + usage: pwdx pids ... +*/ + +#include "toys.h" + +int pid_dir(char *pid) +{ + char *path; + int num_bytes; + + path = xmsprintf("/proc/%s/cwd",pid); + num_bytes = readlink(path,toybuf,sizeof(toybuf)); + if(num_bytes==-1){ + xprintf("%s: %s\n",pid,strerror(errno)); + return 1; + }else{ + toybuf[num_bytes]='\0'; + xprintf("%s: %s\n",pid,toybuf); + return 0; + } +} + +void pwdx_main(void) +{ + int i; + + for (i=0; toys.optargs[i]; i++) + toys.exitval |= pid_dir(toys.optargs[i]); +} +