[ILUG] don't pass open file descriptor to children

Padraig Brady Padraig at AnteFacto.com
Fri Jul 13 17:09:10 IST 2001


Oops should have been a bit more descriptive (pardon the pun).
This has to be general (I don't have to source to the children).

Padraig.

kevin lyda wrote:

> On Fri, Jul 13, 2001 at 04:07:54PM +0100, Glen Gray wrote:
> 
>>I'd suggest using clone instead of fork but IIRC it globally restricts
>>descriptors being passed to children, i.e. It doesn't give you fine
>>control to pass all but this descriptor etc.
>>
> 
> it also makes you code linux-only.  a better solution is to...
> 
> 
>>On 13 Jul 2001 16:05:02 +0100, Padraig Brady wrote:
>>
>>>Is there a flag you can set on a file descriptor (using fcntl or equivalent)
>>>to tell the kernel not to copy that particular descriptor to forked 
>>>children?
>>>
> 
> ...do this:
> 
>     fd_only_in_parent=open(...)
>     ...
>     pid=fork();
>     if (pid == -1) {
> 	...
>     } else if (pid == 0) {
> 	/* do parent things */
>     } else {
> 	close(fd_only_in_parent);
> 	/* do child things */
>     }
> 
> have a lot of fd's you only want in the parent?  put them into an array,
> and have the kids loop them close.
> 
> kevin






More information about the ILUG mailing list