return pid;
}
-void xclose(int fd) {
- mustnotbeminus1("close", close(fd));
+void xclose_guts(const char *path, int line, int fd) {
+ if(close(fd) < 0)
+ fatal(errno, "%s:%d: close %d", path, line, fd);
}
void xdup2(int fd1, int fd2) {
fcntl(fd, F_GETFL)) | O_NONBLOCK));
}
+void blocking(int fd) {
+ mustnotbeminus1("fcntl F_SETFL",
+ fcntl(fd, F_SETFL,
+ mustnotbeminus1("fcntl F_GETFL",
+ fcntl(fd, F_GETFL)) & ~O_NONBLOCK));
+}
+
void cloexec(int fd) {
mustnotbeminus1("fcntl F_SETFD",
fcntl(fd, F_SETFD,