Chapter 17


A declaration specifies the attributes (such as the data type) of a set of identifiers. If the declaration also causes storage to be allocated, it is called a definition.

In the opend.h header, we declare the three global variables with the extern storage class. These declarations do not cause storage to be allocated for the variables. In the main.c file, we define the three global variables. Sometimes, we'll also initialize a global variable when we define it, but we typically let the C default apply.


Both select and poll return the number of ready descriptors as the value of the function. The loop that goes through the client array can terminate when the number of ready descriptors have been processed.