On Thu, 2006-Mar-30 00:41:00 +0200, Maxime Henrion wrote: >John Baldwin wrote: >> I would vote for fcloseall() personally. > >Seconded. I'd prefer to see a function that closed all file descriptors greater than a specified limit (which makes it easy for a process to preserve stdin/out/err but close everything else). Two obvious places for this would be: - At the beginning of a setuid program (making sure that the user hasn't passed in any unexpected open FDs). - Before an exec() to prevent fd's leaking into a child. >Does fcloseall() really closes all the open file descriptors? The name >suggests that it will close all the FILE * streams instead, which is not >quite the same. The manpage I found on the net seems to confirm this >indirectly by saying that fflush() is used prior to closing the streams. Something that just closed all stdio FILE streams would be far less useful (close to totally useless IMHO) than something that closed file descriptors. >FWIW, NetBSD has something that close all the file descriptors, and it's >done with fcntl(fd, F_CLOSEM) (using fcntl() on one file descriptor to >close all of them looks a bit weird to me, but well...). If it close any fd's numerically greater than the passed fd, that would make a lot of sense. -- Peter JeremyReceived on Thu Mar 30 2006 - 06:16:22 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:54 UTC