Hi. I'm having an unusual problem in a program I'm trying to get working in cygwin. My program fork()'s a child process to do a hostname lookup, establishes a tcp connection in the parent, then has the child _exit(0) itself. For some reason I don't understand, _exit is not just closing the fd's of the child, but of the parent as well. From my understanding, _exit is supposed to close the fd's of the process it is run from only.
The program works correctly (That is to say, stays connected) if I comment out the _exit and instead have it while (1) { sleep (10000); }. Obviously I would like to be able to kill off the child at some point, but for testing this proved to me that either my expectation of how _exit is supposed to work in cygwin is flawed, or _exit is. Please let me know if I'm using this function call incorrectly, and what behavior I should be expecting. If my expectation of how _exit is supposed to act is correct, let me know and I'll file a bug report. I am not subscribed to the cygwin mailing list, so please make sure replies are sent to my email address as well as the list. Thank you, Hikaru
pgpaRJk7OXacU.pgp
Description: PGP signature