多任务I/O之poll函数
#include <stdio.h>
#include <unistd.h>
#include <sys/poll.h>
int main(void){
//要等待的文件的数组
struct pollfd fds[2];
int ret;
fds[0].fd = STDIN_FILENO;//文件符
fds[0].events = POLLIN;//等待的事件类型
fds[1].fd = STDOUT_FILENO;
fds[1].events = POLLOUT;
ret = poll(fds, 1, 5000);
if(ret == -1){
perror("poll");
return 1;
}
if(!ret){
printf("time out\n");
return 0;
}
if(fds[0].revents & POLLIN){
printf("can read\n");
}
if(fds[1].revents & POLLOUT){
printf("can write\n");
}
return 0;
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步