When people want to use posix functionality, but want to prevent the bugs in NeXT's POSIX implementation to harm them, they often have to do quite complicated things. To be able to compile for POSIX. they normally have to compile with -posix. This sets preprocessor flags and links against the posix library. Sadly, though, NeXT's kernel contains a broken POSIX implementation. The worst affected is the low-level I/O, where everything you write in append mode is turned into 0-bytes. For most software, this makes POSIX unusable. With noposix, there are two ways of getting around this bug. The quick-and-dirty way (and the fastest in terms of execution) is like this. You include noposix.h and as a first call in the main function turn it off. #define NOPOSIX_QAD #include ...... main() { #if defined( _POSIX_SOURCE) and defined( __NeXT__) _RnA_setposix( 0); #endif; .... } This is more or less the preferred way. The less quick-and-dirty only works when you use low level unbuffered I/O and you have full control over the sources. In that case, you just include noposix.h like this: #include main() { ..... } The advantage is that POSIX is only turned off when I/O is used. This feels safer as we haven't turned posix off in the kernel while using posix stuff, like signals. On the other hand, we haven't noticed any ill effects from turning posix off in a posix program so far. But there is no warranty. So if your program starts to behave funny with the first method, try the second. March 5 1998, R&A Gerben Wierda