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;
}