linux c语言 select函数用法(Linux c language select function usage)
linux c语言 select函数用法(Linux c language select function usage)
Linux c select 2010-12-29 12:50Select language function usage in Socket programming is very important, but for beginners Socket people do not love to write programs in Select, they are just used to write accept, such as connect, recv or recvfrom like block (block, the so-called blocking mode as the name suggests, is the process or thread to execute these functions must be.
When an event occurs, if the event does not happen, the process or thread is blocked and the function cannot return immediately.
But you can use Select to complete the non blocking (so-called non blocking non- block, is a process or thread to perform this function does not have to happen, waiting for an event once the executive must return, to return a different value to reflect the implementation of the function, if the event is blocked and the same way, if it hadn't happened returns a code to inform the event does not occur, and the process or thread to continue, so high efficiency) of work procedures, it can monitor the changes we need to monitor the file descriptor -- or abnormal.
Here's a detailed introduction!
Select function format (I say is under the Unix system Berkeley socket programming, and windows under the difference, a little later):
Int, select (int, maxfdp, fd_set, *readfds, fd_set, *writefds, fd_set, *errorfds, struct, timeval, *timeout);
Explain the two structures first:
First, struct fd_set can be understood as a set, stored in the set file descriptor (filedescriptor), namely the file handle, which can be of general significance we call the Unix file, of course any equipment, pipelines, etc. are FIFO documents, all included, so there is no doubt a socket is a socket file, a handle is a file descriptor.
The fd_set collection can be operated by some macros, such as
Empty the collection FD_ZERO (fd_set *);
Adds a given file descriptor to the collection FD_SET (int, fd_set *);
Deletes a given file descriptor from the coll