I wrote: > the result of fcntl > can apparently be used to distinguish the substitute file descriptor > stuffed in by exec() from a regular open("/dev/null",O_RDONLY).
Note that the code works for STDIN_FILENO, where fcntl(...) is 5 in one case and 0 in the other case, and we use FD_CLOEXEC = 1 to distinguish the two. For STDOUT_FILENO, fcntl(...) would be 5 in one case and 1 in the other case, and the flag which allows to distinguish the two cases (4) is not listed in <sys/fcntl.h>, therefore likely is a kernel-private flag. Bruno