[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: about lposix
- From: Doug Currie <doug.currie@...>
- Date: Tue, 17 Oct 2006 21:37:02 -0400
Tuesday, October 17, 2006, 7:03:04 PM, Natanael Copa wrote:
> The question is what posix funcs can't windows do, and then maybe do
> something special there. Is there a list of posix things windows can't
> do?
Superficially things look quite rosy; then you hit a brick wall. Off
the top of my head...
File descriptors in posix and HANDLES in Windows are not quite
equivalent. For example, select() in posix can use a file descriptor
to a file or socket, whereas in Windows only sockets work. There are
probably many similar issues with streams, standard I/O, process
handle inheritance, ownership, permissions, etc.
Symlinks are difficult. There have been attempts using NTFS reparse
points, but the semantics of these links differ from UNIX symlinks.
http://svn.haxx.se/dev/archive-2004-10/1023.shtml
Windows has a root directory and a current directory on each drive.
There is no single root directory "/"
Timers and time accounting are quite different. gettimeofday() can be
a real bear to emulate correctly; google for all the bug reports to
see what I mean.
Signals work much differently. Windows uses different mechanisms.
Windows threads are fine, but different from pthreads, e.g., no condition
variables.
The conformance page at
http://sourceware.org/pthreads-win32/conformance.html
will give you an idea of what's hard to do in the process/threads
area. sigwait() is not implemented, for example.
e
--
Doug Currie
Londonderry, NH