一、引言
最近在看《Linux 程序设计》(第四版)的时候,看到了 linux select 函数的时候,突然有感而发写了一段代码代表我每天的生活:
fd_set dayfds; int fd = 0;
FD_ZERO(&dayfds);
FD_SET("QQ", &dayfds);
FD_SET("WeChat", &dayfds);
FD_SET("WorkTalk", &dayfds);
select(FD_SETSIZE, &dayfds, 0, 0, 0);
while(FD_ISSET(fd++, &dayfds)) { ... }
当然了,调用相当的不严谨,不过这不重要了哈哈,毕竟是写着玩的。
二、解析
那么这几行代码的含义是啥呢?
我每天的生活就像是一个 select 函数,时刻监听着 QQ、微信、工作聊天工具等等这些软件的可读消息,然后进行处理。其中 dayfds 就是我每天的可读文件描述符的集合,在里面加入了 QQ、WeChat、和 WorkTalk(指代工作聊天工具),然后 select 阻塞监听,一旦有可读状态变化即进行 FD_ISSET 处理。while 循环中的三个点自然就是伪代码了哈:)
是不是很像我们大部分程序员的每一天呢,不论是生活还是工作,都只是像一个 select 函数一样,监听着可读信息,然后处理,然后继续监听…
最后的我们,都活成了一个 select 函数,哈哈哈:)
是不是蛮有趣的呢?用代码记录生活 ^_^