[英]Select not working Unix C
fd_set read_fds;
struct timeval tv;
while(1){
tv.tv_sec = 3;
tv.tv_usec = 0;
FD_ZERO(&read_fds);
FD_SET(0,&read_fds);
FD_SET(pipelogin,&read_fds);
nfd = select(1,&read_fds,NULL,NULL,&tv);
if(FD_ISSET(0,&read_fds)){
printf("Comando"); }
//comandos();
if(FD_ISSET(pipelogin,&read_fds)){
printf("Login"); }
//VerificaLogin(pipelogin);
}
我的函數“ comandos()”只是從用戶讀取命令並執行某些操作,而函數VerificaLogin(pipelogin)只是讓用戶登錄或不登錄。 我只能使用一次“ comando”,而VerificaLogin只能在第一個“ comando”之后使用...有人可以告訴我這里有什么問題嗎? 對不起,英語不好。
select
功能是狀態報告功能。 除非狀態更改,否則它將繼續報告相同的狀態。
另外, 絕對不要將select
與阻塞套接字一起使用。 那只會引起痛苦。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.