> From: Paul Eggert [mailto:egg...@cs.ucla.edu] > Sent: Friday, December 16, 2011 7:47 PM > To: Joachim Schmitz > Cc: 'Eric Blake'; 'Jim Meyering'; 10...@debbugs.gnu.org; bug-gnulib@gnu.org > Subject: Re: bug#10305: coreutils-8.14, "rm -r" fails with EBADF > > 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; > }
The standalone version works just fine.