summaryrefslogtreecommitdiff
path: root/busybox/coreutils/watch.c
diff options
context:
space:
mode:
Diffstat (limited to 'busybox/coreutils/watch.c')
-rw-r--r--busybox/coreutils/watch.c12
1 files changed, 5 insertions, 7 deletions
diff --git a/busybox/coreutils/watch.c b/busybox/coreutils/watch.c
index f9f4018..31fadfb 100644
--- a/busybox/coreutils/watch.c
+++ b/busybox/coreutils/watch.c
@@ -82,7 +82,7 @@ extern int watch_main(int argc, char **argv)
header[len] = 0;
/* thanks to lye, who showed me how to redirect stdin/stdout */
- old_stdout = dup(1);
+ old_stdout = dup(STDOUT_FILENO);
while (1) {
time(&t);
@@ -98,13 +98,11 @@ extern int watch_main(int argc, char **argv)
sleep(period);
} else if (0 == pid) {
//child
- close(1);
- dup(old_stdout);
- if (execvp(*watched_argv, watched_argv)) {
- bb_error_msg_and_die("Couldn't run command\n");
- }
+ dup2(old_stdout, STDOUT_FILENO);
+ execvp(*watched_argv, watched_argv);
+ bb_perror_msg_and_die(*watched_argv);
} else {
- bb_error_msg_and_die("Couldn't vfork\n");
+ bb_perror_msg_and_die("vfork");
}
}
}