[fpc-devel] inheriting handles using TProcess in unix
Henry Vermaak
henry.vermaak at gmail.com
Thu Jan 27 15:20:56 CET 2011
On 26 January 2011 22:19, Seth Grover <sethdgrover at gmail.com> wrote:
> http://www.freepascal.org/docs-html/fcl/process/tprocess.inherithandles.html
> says "On Unix, setting this variable has no effect." Why is this?
>
> The reason I ask is that often when using TProcess I run into the
> problem where if I execute some script or program which perhaps forks
> and outlives my original fpc process that this new forked process
> inherits all of the open descriptors belonging to my original process,
> which is usually not what I want.
You can prevent file descriptors from surviving an exec by setting the
FD_CLOEXEC flag for that file descriptor with fcntl(). This is
obviously not thread safe, so there is an O_CLOEXEC flag for open().
See here:
http://udrepper.livejournal.com/20407.html
http://www.gnu.org/software/libc/manual/html_node/Descriptor-Flags.html#Descriptor-Flags
Henry
More information about the fpc-devel
mailing list