lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


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