diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2016-04-01 22:12:44 +0200 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2016-04-01 22:12:44 +0200 |
commit | c4199f22d0f7793b70db51c01783f0d45afce3d4 (patch) | |
tree | d54b8df23749d5ea06dc5effd5ba111b8e2cf52f /libbb | |
parent | 29b33b63d49be88200f794d832450a4c71e85a5e (diff) | |
download | busybox-w32-c4199f22d0f7793b70db51c01783f0d45afce3d4.tar.gz busybox-w32-c4199f22d0f7793b70db51c01783f0d45afce3d4.tar.bz2 busybox-w32-c4199f22d0f7793b70db51c01783f0d45afce3d4.zip |
libbb: two new functions: wait_for_exitstatus(pid), xfchdir(fd)
Bartosz Golaszewski proposed xfchdir()
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'libbb')
-rw-r--r-- | libbb/xfuncs.c | 12 | ||||
-rw-r--r-- | libbb/xfuncs_printf.c | 6 |
2 files changed, 18 insertions, 0 deletions
diff --git a/libbb/xfuncs.c b/libbb/xfuncs.c index 206edb4a0..3f9a84ad4 100644 --- a/libbb/xfuncs.c +++ b/libbb/xfuncs.c | |||
@@ -315,3 +315,15 @@ int FAST_FUNC wait4pid(pid_t pid) | |||
315 | return WTERMSIG(status) + 0x180; | 315 | return WTERMSIG(status) + 0x180; |
316 | return 0; | 316 | return 0; |
317 | } | 317 | } |
318 | |||
319 | // Useful when we do know that pid is valid, and we just want to wait | ||
320 | // for it to exit. Not existing pid is fatal. waitpid() status is not returned. | ||
321 | int FAST_FUNC wait_for_exitstatus(pid_t pid) | ||
322 | { | ||
323 | int exit_status, n; | ||
324 | |||
325 | n = safe_waitpid(pid, &exit_status, 0); | ||
326 | if (n < 0) | ||
327 | bb_perror_msg_and_die("waitpid"); | ||
328 | return exit_status; | ||
329 | } | ||
diff --git a/libbb/xfuncs_printf.c b/libbb/xfuncs_printf.c index 73488908d..4aa1b5ce2 100644 --- a/libbb/xfuncs_printf.c +++ b/libbb/xfuncs_printf.c | |||
@@ -390,6 +390,12 @@ void FAST_FUNC xchdir(const char *path) | |||
390 | bb_perror_msg_and_die("can't change directory to '%s'", path); | 390 | bb_perror_msg_and_die("can't change directory to '%s'", path); |
391 | } | 391 | } |
392 | 392 | ||
393 | void FAST_FUNC xfchdir(int fd) | ||
394 | { | ||
395 | if (fchdir(fd)) | ||
396 | bb_perror_msg_and_die("fchdir"); | ||
397 | } | ||
398 | |||
393 | void FAST_FUNC xchroot(const char *path) | 399 | void FAST_FUNC xchroot(const char *path) |
394 | { | 400 | { |
395 | if (chroot(path)) | 401 | if (chroot(path)) |