X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=src%2Funistd%2Fpipe2.c;h=f24f74fb0300d0d1cfe40e93d1da24b63be081f4;hb=a6367a17d5f77848e8313b1e5e42698aec92908d;hp=04e0c128d661d55c8d70de2bcb3738e9ea1d29bf;hpb=44eb4d8b9b7b3b539bcd4e311e9d7c8e2acf8d80;p=musl diff --git a/src/unistd/pipe2.c b/src/unistd/pipe2.c index 04e0c128..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; }