簡體   English   中英

選擇無法使用的Unix C

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM