9 int main(int argc
, char *argv
[])
15 fprintf(stderr
, "usage: %s PROG [ARGS]\n", argv
[0]);
20 fprintf(stderr
, "%s: fork: %s\n", argv
[0], strerror(errno
));
24 execvp(argv
[1], argv
+ 1);
25 fprintf(stderr
, "%s: exec %s: %s\n", argv
[0], argv
[1], strerror(errno
));
28 if (waitpid(kid
, &rc
, 0) <= 0) {
29 fprintf(stderr
, "%s: wait: %s\n", argv
[0], strerror(errno
));
32 if (!WIFEXITED(rc
) || WEXITSTATUS(rc
) == 111)
34 exit(WEXITSTATUS(rc
) == 0 ?
100 : 0);