对付低级的IO监控,FD_ZERO(),FD_SET(),FD_CLR(),FD_ISSET(),清理文件描述符集合,加入文件描述符,取出某个文件描述符,测试文件描述符是否在集合中。这里特别需要注意的是select()的中间3个参数是值结果参数,执行完毕后会变化,就是通过变化后的值来处理相应的事件的,这一点最关键。
gcc test.c -o test
./test
abcd //敲击abcd四个字符
abcd //打印出敲击的字符
Data is available now .
./test
No data within five seconds. //等待5秒不敲击键盘
gcc teststdio.c -o teststdio
./teststdio
asdfasdf //敲击asdfasdf四个字符
asdfasdf //打印出敲击的字符