Martin wrote: > Well, this is a strange one. > I open a socket in a parent process, bind it and > listen. > I set the socket to close-on-exec with the FD_CLOEXEC > flag. > A child process is spawned, which doesn't inherit the > socket. > I then close the server socket in the parent process. > For a laugh, I attempt to connect to the port > associated with the server socket. I would expect > this connection request to fail, since I just closed > the socket. It doesn't. > > The attached test case illustrates this. > Please let me know if I'm doing something wrong.
I can't say why yet, but server_sock is still open in the child. Adding an explicit "close(server_sock)" just before the call to execlp in the child-side of the fork clause fixes it. Maybe FD_CLOEXEC isn't implemented or working properly on cygwin, I haven't looked further yet. cheers, DaveK -- Can't think of a witty .sigline today.... -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/