例:UNIX版kbhit 「標準入力(stdin)からノンブロックでreadできるか調べた い」
int unix_kbhit( void )
{fd_set readfds; /* selectに渡す為のデータ(入力− read −できるか調べたいディスクリプタの集合) */}
int n; /* 調べたいファイルディスクリ プタの値の最大値+1 */
struct timeval timeout; /* タイムアウト時間 */
int re; /* 戻り値保持用 *//* 引数に渡すデータを初期化 */
FD_ZERO( &readfds ); /* 集合の要素をクリア */
FD_SET( STDIN_FILENO , &readfds ); /* 標準入力を集合 に追加 */n = STDIN_FILENO + 1;
timeout.tv_sec = 0; /* タイムアウトは0 = selectはノンブロック */
timeout.tv_usec = 0;re = select( n , &readfds , NULL , NULL , &timeout );
if( re > 0 ){
return 1; /* なにかキーを押した */
} else {
return 0; /* なんにも押してない */
}