gpt4 book ai didi

linux - 在循环中选择 - 一直工作 - linux

转载 作者:太空宇宙 更新时间:2023-11-04 10:42:04 24 4
gpt4 key购买 nike

我有下一个关于选择的问题:如何在循环中进行选择?

我试着这样做:

struct timeval timeout;
int sel;
size_t rozmiar = sizeof(pid_t);
char buf[rozmiar];
int i;

FD_ZERO(&set);
for(i = 0; i< val; i++)
{ FD_SET(fd[i][0], &set); // val -> N pipe2
}
timeout.tv_sec = 2;
timeout.tv_usec = 0;

while(1)
{
sel = select(val+1,&set,NULL,NULL,&timeout);

if(sel < 0)
perror("select");
else if(sel == 0)
printf("No communicate \n");
else{
for(i = 0; i < val; i++)
{
if(FD_ISSET(fd[i][0],&set))
{
while(read(fd[i][0],&buf,rozmiar) > 0)
write(1,&buf,rozmiar);
} // check if exist and write to stdout
}
} // end SELECT

timeout.tv_sec = 2;
timeout.tv_usec = 0;
}

但一直显示:,, no communicate”。创建select which work all time的方法正确吗?我不确定所以我更想问。我试图在书中找到信息但没有幸运。

最佳答案

集合由select改变,每次都需要重新填充

关于linux - 在循环中选择 - 一直工作 - linux,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34691960/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com