0

メッセージを受信し、ユーザー入力 (STDIN) を受信し、他のサーバーに定期的にメッセージを送信するプログラムを作成しています。そこで、プログラムでselect()を使用しました。以下は擬似コードです。

// master is the fd set
FD_SET(0, &master); // add STDIN into master set
FD_SET(listener, &master); // listener is the listening UDP socket
int indicator = select(...args...);

// have data coming in
if(indicator > 0 ){
    // do something
}
// user input some data
else if(indicator == 0){
    // do something if user input data
}
//Here is the question. How can I differentiate STDIN from timeout?
else if(){
    // do something if timeout occurred
}

この場合、どちらも select() が 0 を返すため、タイムアウトを STDIN と区別する方法があることを知りたいですか?

4

0 に答える 0