diff options
Diffstat (limited to 'bin/pwait/pwait.c')
| -rw-r--r-- | bin/pwait/pwait.c | 34 |
1 files changed, 21 insertions, 13 deletions
diff --git a/bin/pwait/pwait.c b/bin/pwait/pwait.c index 0fae22562607..27f4c8e9858d 100644 --- a/bin/pwait/pwait.c +++ b/bin/pwait/pwait.c @@ -39,6 +39,7 @@ #include <err.h> #include <errno.h> #include <signal.h> +#include <stdbool.h> #include <stdio.h> #include <stdlib.h> #include <string.h> @@ -48,7 +49,6 @@ static void usage(void) { - fprintf(stderr, "usage: pwait [-t timeout] [-ov] pid ...\n"); exit(EX_USAGE); } @@ -61,15 +61,16 @@ main(int argc, char *argv[]) { struct itimerval itv; struct kevent *e; - int oflag, tflag, verbose; - int i, kq, n, nleft, opt, status; - long pid; char *end, *s; double timeout; + long pid; + pid_t mypid; + int i, kq, n, nleft, opt, status; + bool oflag, tflag, verbose; - oflag = 0; - tflag = 0; - verbose = 0; + oflag = false; + tflag = false; + verbose = false; memset(&itv, 0, sizeof(itv)); while ((opt = getopt(argc, argv, "ot:v")) != -1) { @@ -78,25 +79,31 @@ main(int argc, char *argv[]) oflag = 1; break; case 't': - tflag = 1; + tflag = true; errno = 0; timeout = strtod(optarg, &end); if (end == optarg || errno == ERANGE || timeout < 0) { errx(EX_DATAERR, "timeout value"); } - switch(*end) { - case 0: + switch (*end) { + case '\0': + break; case 's': + end++; break; case 'h': timeout *= 60; /* FALLTHROUGH */ case 'm': timeout *= 60; + end++; break; default: errx(EX_DATAERR, "timeout unit"); } + if (*end != '\0') { + errx(EX_DATAERR, "timeout unit"); + } if (timeout > 100000000L) { errx(EX_DATAERR, "timeout value"); } @@ -106,7 +113,7 @@ main(int argc, char *argv[]) (suseconds_t)(timeout * 1000000UL); break; case 'v': - verbose = 1; + verbose = true; break; default: usage(); @@ -131,10 +138,11 @@ main(int argc, char *argv[]) err(EX_OSERR, "malloc"); } nleft = 0; + mypid = getpid(); for (n = 0; n < argc; n++) { s = argv[n]; /* Undocumented Solaris compat */ - if (!strncmp(s, "/proc/", 6)) { + if (strncmp(s, "/proc/", 6) == 0) { s += 6; } errno = 0; @@ -143,7 +151,7 @@ main(int argc, char *argv[]) warnx("%s: bad process id", s); continue; } - if (pid == getpid()) { + if (pid == mypid) { warnx("%s: skipping my own pid", s); continue; } |
