X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=src%2Funistd%2Fpipe2.c;h=f24f74fb0300d0d1cfe40e93d1da24b63be081f4;hb=a6367a17d5f77848e8313b1e5e42698aec92908d;hp=973e8ec3e56aa3063a4b5dae34b3460c8f41d99b;hpb=bcc20d2b94e2c6649597d552b94718197be0674f;p=musl diff --git a/src/unistd/pipe2.c b/src/unistd/pipe2.c index 973e8ec3..f24f74fb 100644 --- a/src/unistd/pipe2.c +++ b/src/unistd/pipe2.c @@ -5,18 +5,18 @@ int pipe2(int fd[2], int flag) { - if (!flag) return syscall(SYS_pipe, fd); + if (!flag) return pipe(fd); int ret = __syscall(SYS_pipe2, fd, flag); if (ret != -ENOSYS) return __syscall_ret(ret); - ret = __syscall(SYS_pipe, fd); - if (ret) return __syscall_ret(ret); + ret = pipe(fd); + if (ret) return ret; if (flag & O_CLOEXEC) { - fcntl(fd[0], F_SETFD, FD_CLOEXEC); - fcntl(fd[1], F_SETFD, FD_CLOEXEC); + __syscall(SYS_fcntl, fd[0], F_SETFD, FD_CLOEXEC); + __syscall(SYS_fcntl, fd[1], F_SETFD, FD_CLOEXEC); } if (flag & O_NONBLOCK) { - fcntl(fd[0], F_SETFL, fcntl(fd[0], F_GETFL) | O_NONBLOCK); - fcntl(fd[1], F_SETFL, fcntl(fd[1], F_GETFL) | O_NONBLOCK); + __syscall(SYS_fcntl, fd[0], F_SETFL, O_NONBLOCK); + __syscall(SYS_fcntl, fd[1], F_SETFL, O_NONBLOCK); } return 0; }