On 12/16/11 05:46, Joachim Schmitz wrote: > It is not O_NOCTTY or O_NONBLOCK and the others (O_SEARCH, O_DIRECTORY, > O_NOFOLLOW, O_NOATIME) don't exist here.
It could be the FD_CLOEXEC, perhaps. What does the following do? Try it standalone, and also try it compiled and linked against gnulib. #include <fcntl.h> #include <unistd.h> #include <stdio.h> int main (void) { int fd, r, fd2; fd = open (".", O_RDONLY | O_NOCTTY | O_NONBLOCK); if (fd < 0) return perror ("open"), 1; r = fcntl (fd, F_SETFD, FD_CLOEXEC); if (r < 0) return perror ("F_SETFD"), 1; fd2 = dup (fd); if (fd2 < 0) return perror ("dup"), 1; return 0; }