Introduction
Introduction Statistics Contact Development Disclaimer Help
Add pwdx(1) - ubase - suckless linux base utils
git clone git://git.suckless.org/ubase
Log
Files
Refs
README
LICENSE
---
commit f26a1449bfa18a6fbbe263f084df4e490772e9d3
parent 28795cffe22ee6a645e4763f6b9bd0e422dddb2a
Author: Mattias Andrée <[email protected]>
Date: Sat, 26 Mar 2016 12:58:37 +0100
Add pwdx(1)
Signed-off-by: Mattias Andrée <[email protected]>
Diffstat:
M Makefile | 2 ++
M TODO | 1 -
A pwdx.1 | 13 +++++++++++++
A pwdx.c | 51 +++++++++++++++++++++++++++++…
4 files changed, 66 insertions(+), 1 deletion(-)
---
diff --git a/Makefile b/Makefile
@@ -70,6 +70,7 @@ BIN = \
pidof \
pivot_root \
ps \
+ pwdx \
readahead \
respawn \
rmmod \
@@ -106,6 +107,7 @@ MAN1 = \
passwd.1 \
pidof.1 \
ps.1 \
+ pwdx.1 \
respawn.1 \
stat.1 \
su.1 \
diff --git a/TODO b/TODO
@@ -19,7 +19,6 @@ mkswap [-L]
partprobe
pmap
ps (support for more options)
-pwdx
rfkill
rmgroup
rmuser
diff --git a/pwdx.1 b/pwdx.1
@@ -0,0 +1,13 @@
+.Dd March 26, 2015
+.Dt PWDX 1
+.Os ubase
+.Sh NAME
+.Nm pwdx
+.Nd print working directory of other processes
+.Sh SYNOPSIS
+.Nm
+.Ar pid...
+.Sh DESCRIPTION
+.Nm
+Prints the current working directory for each
+.Ar pid .
diff --git a/pwdx.c b/pwdx.c
@@ -0,0 +1,51 @@
+/* See LICENSE file for copyright and license details. */
+#include <errno.h>
+#include <limits.h>
+#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+
+#include "util.h"
+
+static void
+usage(void)
+{
+ eprintf("usage: %s pid...\n", argv0);
+}
+
+int
+main(int argc, char *argv[])
+{
+ int ret = 0;
+ char path[PATH_MAX];
+ char target[PATH_MAX + sizeof(" (deleted)")];
+ ssize_t n;
+
+ ARGBEGIN {
+ default:
+ usage();
+ } ARGEND;
+
+ if (argc == 0)
+ usage();
+
+ for (; argc > 0; argc--, argv++) {
+ n = snprintf(path, sizeof(path), "/proc/%s/cwd", *argv);
+ if (n < 0 || n > sizeof(path)) {
+ errno = ESRCH;
+ } else {
+ n = readlink(path, target, sizeof(target) - 1);
+ if (n >= 0) {
+ target[n] = '\0';
+ printf("%s: %s\n", *argv, target);
+ continue;
+ }
+ }
+ if (errno == ENOENT)
+ errno = ESRCH;
+ weprintf("%s:", *argv);
+ ret = 1;
+ }
+
+ return ret;
+}
You are viewing proxied material from suckless.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.