Because a SOCKET is no longer represented by the UNIX-style "small non-negative integer", the implementation of the select function was changed in Windows Sockets. Each set of sockets is still represented by the fd_set type, but instead of being stored as a bitmask the set is implemented as an array of SOCKETs. To avoid potential problems, applications must adhere to the use of the FD_XXX macros to set, initialize, clear, and check the fd_set structures.