From: jazz AT softway DOT com (Jason Zions) Subject: Re: fork2 15 Nov 1997 11:52:47 -0800 Message-ID: <346DFA2E.B535BB01.cygnus.gnu-win32@softway.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: root Cc: Alex , gnu-win32 AT cygnus DOT com > There is no free lunch. If you want only NT, you will have to accept that > fork() is NOT there. Or you could use OpenNT from Softway Systems which gives you a real, honest, fully-conforming, fork(). Not to mention the rest of POSIX.1, POSIX.2, sockets, shared memory, semaphores, ttys and ptys, X11, etc. that Unix programs and programmers expect. > fork() can only be implemented at the OS level. NT could do it easily since > it could just modify the working set of the new process to point to the newly > allocated pages instead of pointing to the old ones. But, for whatever > reasons, Microsoft has decided not to implement fork(). Yes, they did (though not by that name). They didn't expose it through Win32, and Win32 itself knows nothing from fork semantics so it wouldn't help if you did call fork() from a Win32 process. Fork() is a well-defined concept for programs based on POSIX and similar API paradigms; every "Unix-like" object has defined behavior with respect to fork(). File handles get duped, fcntl locks get handled like *this*, shared memory gets handled like *that*, etc. No Win32 object has defined semantics w.r.t. a fork() operation. > When I use Windows, I accept that fork() is not there, as well as many other > Unix features. That's a shame. You can have both; you just need the right technology. Jason Zions Softway Systems http://www.opennt.com - For help on using this list (especially unsubscribing), send a message to "gnu-win32-request AT cygnus DOT com" with one line of text: "help".