diff options
author | Pascal Bellard | 2010-07-04 00:57:03 +0200 |
---|---|---|
committer | Denys Vlasenko | 2010-07-04 00:57:03 +0200 |
commit | 21e8e8da6483c80a6054b06e48341968a7dccdd5 (patch) | |
tree | 9980dc076107930f9706733c7cbedcf0e4099877 /miscutils | |
parent | 7c1b2b5420d4208864b8bc6e07e90792aed94981 (diff) | |
download | busybox-21e8e8da6483c80a6054b06e48341968a7dccdd5.zip busybox-21e8e8da6483c80a6054b06e48341968a7dccdd5.tar.gz |
libbb: introduce and use BB_EXECVP_or_die()
function old new delta
BB_EXECVP_or_die - 47 +47
time_main 1042 1043 +1
chrt_main 371 364 -7
ionice_main 292 282 -10
setsid_main 69 56 -13
nohup_main 236 223 -13
cttyhack_main 266 253 -13
chroot_main 94 81 -13
chpst_main 746 733 -13
timeout_main 297 279 -18
taskset_main 541 522 -19
vfork_child 67 45 -22
parse 975 953 -22
lpd_main 770 748 -22
launch_helper 192 170 -22
tcpudpsvd_main 1810 1782 -28
nice_main 190 156 -34
env_main 242 206 -36
run_command 221 174 -47
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 1/17 up/down: 48/-352) Total: -304 bytes
Signed-off-by: Pascal Bellard <pascal.bellard@ads-lu.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'miscutils')
-rw-r--r-- | miscutils/chrt.c | 3 | ||||
-rw-r--r-- | miscutils/ionice.c | 3 | ||||
-rw-r--r-- | miscutils/setsid.c | 3 | ||||
-rw-r--r-- | miscutils/taskset.c | 3 | ||||
-rw-r--r-- | miscutils/time.c | 15 | ||||
-rw-r--r-- | miscutils/timeout.c | 3 |
6 files changed, 11 insertions, 19 deletions
diff --git a/miscutils/chrt.c b/miscutils/chrt.c index 3d0da58..d5f87c4 100644 --- a/miscutils/chrt.c +++ b/miscutils/chrt.c @@ -120,6 +120,5 @@ int chrt_main(int argc UNUSED_PARAM, char **argv) if (!argv[0]) /* "-p <priority> <pid> [...]" */ goto print_rt_info; - BB_EXECVP(argv[0], argv); - bb_perror_msg_and_die("can't execute '%s'", argv[0]); + BB_EXECVP_or_die(argv); } diff --git a/miscutils/ionice.c b/miscutils/ionice.c index 8393cd8..52e51b9 100644 --- a/miscutils/ionice.c +++ b/miscutils/ionice.c @@ -90,8 +90,7 @@ int ionice_main(int argc UNUSED_PARAM, char **argv) if (ioprio_set(IOPRIO_WHO_PROCESS, pid, pri) == -1) bb_perror_msg_and_die("ioprio_%cet", 's'); if (argv[0]) { - BB_EXECVP(argv[0], argv); - bb_perror_msg_and_die("can't execute '%s'", argv[0]); + BB_EXECVP_or_die(argv); } } diff --git a/miscutils/setsid.c b/miscutils/setsid.c index 60ee062..c573fae 100644 --- a/miscutils/setsid.c +++ b/miscutils/setsid.c @@ -45,6 +45,5 @@ int setsid_main(int argc UNUSED_PARAM, char **argv) } argv++; - BB_EXECVP(argv[0], argv); - bb_perror_msg_and_die("can't execute '%s'", argv[0]); + BB_EXECVP_or_die(argv); } diff --git a/miscutils/taskset.c b/miscutils/taskset.c index 2891003..08198d5 100644 --- a/miscutils/taskset.c +++ b/miscutils/taskset.c @@ -132,6 +132,5 @@ int taskset_main(int argc UNUSED_PARAM, char **argv) if (!argv[0]) /* "-p <aff> <pid> [...ignored...]" */ goto print_aff; /* print new affinity and exit */ - BB_EXECVP(argv[0], argv); - bb_perror_msg_and_die("can't execute '%s'", argv[0]); + BB_EXECVP_or_die(argv); } diff --git a/miscutils/time.c b/miscutils/time.c index f5d1e15..5cfbcef 100644 --- a/miscutils/time.c +++ b/miscutils/time.c @@ -367,20 +367,17 @@ static void summarize(const char *fmt, char **command, resource_t *resp) Put the statistics in *RESP. */ static void run_command(char *const *cmd, resource_t *resp) { - pid_t pid; /* Pid of child. */ + pid_t pid; void (*interrupt_signal)(int); void (*quit_signal)(int); resp->elapsed_ms = monotonic_ms(); - pid = vfork(); /* Run CMD as child process. */ + pid = vfork(); if (pid < 0) - bb_perror_msg_and_die("fork"); - if (pid == 0) { /* If child. */ - /* Don't cast execvp arguments; that causes errors on some systems, - versus merely warnings if the cast is left off. */ - BB_EXECVP(cmd[0], cmd); - xfunc_error_retval = (errno == ENOENT ? 127 : 126); - bb_perror_msg_and_die("can't execute '%s'", cmd[0]); + bb_perror_msg_and_die("vfork"); + if (pid == 0) { + /* Child */ + BB_EXECVP_or_die((char**)cmd); } /* Have signals kill the child but not self (if possible). */ diff --git a/miscutils/timeout.c b/miscutils/timeout.c index 273d269..f6e655a 100644 --- a/miscutils/timeout.c +++ b/miscutils/timeout.c @@ -110,6 +110,5 @@ int timeout_main(int argc UNUSED_PARAM, char **argv) argv[0] = sv1; argv[1] = sv2; #endif - BB_EXECVP(argv[0], argv); - bb_perror_msg_and_die("can't execute '%s'", argv[0]); + BB_EXECVP_or_die(argv); } |