Mail Archives: cygwin-developers/1998/06/07/21:16:07
| From: | cgf AT cygnus DOT com (Christopher G. Faylor) | 
| Subject: | Foolproof solution for non-inherit on spawn/exec? | 
| 7 Jun 1998 21:16:07 GMT
: |  | 
| Message-ID: | <6levun$npa$1@cronkite.cygnus.com> | 
| X-Newsreader: | trn 4.0-test63 (15 March 1998) | 
How about this for a "foolproof" solution to the problem of inheriting handles?
Don't *ever* create an inheritable handle in the fd table.
Create the "linearized" fd table prior to spawning a process but do not
populate it with any handle which has a close-on-exec bit set.  In the spawned
process, the "delinearize" code will do a DuplicateHandle on every handle that
it needs from the parent process.
This scenario means that fds opened in a cygwin process are not passed
to a non-cygwin process.  I think that's the correct behavior.
The only downside that I can see is that it means that process startup is
slightly slower.  It also means that a forked process will also have to
go through this effort.
-- 
cgf AT cygnus DOT com             "Everything has a boolean value, if you stand
http://www.cygnus.com/      far enough away from it."  -- Galena Alyson Canada
- Raw text -