Unix allows you to have calls to read() and write() to be nonblocking. This means that for instance that you can attempt to read, and if there is nothing to be read, the read() will not hang. This is very useful for loops in which we repeatedly poll several I/O sources.

Click here for a pair of programs, Server.c and Writer.c, which illustrate nonblocking I/O, in this case on Internet sockets.