X-Git-Url: https://git.distorted.org.uk/~mdw/mLib/blobdiff_plain/7cf5c72a6d353ed5a7e340562c11e54c21c85e5e..7ff43cd7273904110681588929bcbad89b28227b:/sys/t/mdup-test.c diff --git a/sys/t/mdup-test.c b/sys/t/mdup-test.c index d2a198a..ef9429d 100644 --- a/sys/t/mdup-test.c +++ b/sys/t/mdup-test.c @@ -14,7 +14,7 @@ static void fail(const char *what) { perror(what); exit(1); } int main(int argc, char *argv[]) { - int i, n; + int i, n, j; int fd, fd2; struct stat st; int ino[MAXFD]; @@ -22,18 +22,14 @@ int main(int argc, char *argv[]) mdup_fd fds[MAXFD]; int win = 1; - for (i = 0; i < argc - 1; i++) { - if (i >= MAXFD) { - fprintf(stderr, "too many\n"); - exit(1); - } - if (sscanf(argv[i + 1], "%d:%d", &fds[i].cur, &fds[i].want) < 2 || - fds[i].cur >= MAXFD) { - fprintf(stderr, "bad syntax\n"); - exit(1); - } + for (i = 1, j = 0; i < argc; i++) { + if (j >= MAXFD) { fprintf(stderr, "too many\n"); exit(1); } + if (sscanf(argv[i], "%d:%d", &fds[j].cur, &fds[j].want) < 2 || + fds[j].cur >= MAXFD) + { fprintf(stderr, "bad syntax\n"); exit(1); } + j++; } - n = argc - 1; + n = j; for (i = 0; i < MAXFD; i++) flag[i] = -1; for (i = 0; i < n; i++) { fd = fds[i].cur; @@ -46,10 +42,7 @@ int main(int argc, char *argv[]) 0700)) < 0) fail("creat"); unlink(",delete-me"); - if (fd2 != fd) { - if (dup2(fd2, fd) < 0) fail("dup2"); - close(fd2); - } + if (fd2 != fd) { if (dup2(fd2, fd) < 0) fail("dup2"); close(fd2); } if (fstat(fd, &st)) fail("fstat"); ino[i] = st.st_ino; }