ソケットをノンブロッキングソケットに指定する
from
『TCP/IP ソケットプログラミング C言語編』を読む
ソケット
を
ノンブロッキングソケット
に指定する
fcntl
で
F_SETFL
コマンドを用いて、
ソケットディスクリプタ
の
O_NONBLOCK
フラグと
F_ASYNC
フラグををセットする。
code: example.c
fcntl(sock, F_SETFL, O_NONBLOCK | F_ASYNC);
これによりソケットは
ノンブロッキングI/O
を行うようになる。
ソケットの呼び出しタイミングは
SIGIO
シグナルを受信することで知ることができる。
注意
fcntlは、失敗すると
-1
を返す。
エラーハンドリングする。