This is the mail archive of the
cygwin@sourceware.cygnus.com
mailing list for the Cygwin project.
Re: fork2
- To: root <root at jacob dot remcomp dot fr>
- Subject: Re: fork2
- From: Jason Zions <jazz at softway dot com>
- Date: Sat, 15 Nov 1997 14:38:22 -0500
- CC: Alex <garbanzo at hooked dot net>, gnu-win32 at cygnus dot com
- Organization: Softway Systems Inc.
- References: <m0xWe3j-000AL8C@jacob.remcomp.fr>
> 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@cygnus.com" with one line of text: "help".