It appears that SOCK_NONBLOCK is not actually POSIX. According to the OpenBSD man page, it will be soon, and according to the Linux man page, it is a Linux extension. However, fcntl() with O_NONBLOCK seems to be portable across both systems.