EN JA
PCAP_SETNONBLOCK(3)
PCAP_SETNONBLOCK(3) FreeBSD Library Functions Manual PCAP_SETNONBLOCK(3)

名称

pcap_setnonblock, pcap_getnonblock -キャプチャ (捕獲) デバイスで非ブロッキングモードの状態を設定するか、または取得する

書式


#include <pcap/pcap.h>


char errbuf[PCAP_ERRBUF_SIZE];


int pcap_setnonblock(pcap_t *p, int nonblock, char *errbuf);
int pcap_getnonblock(pcap_t *p, char *errbuf);

解説

pcap_setnonblock() は、 nonblock が 0 以外か、または 0 であるかどうかによって、捕獲ハンドルを ``non-blocking'' (非ブロッキング) モードにするか、または ``non-blocking'' (非ブロッキング) モードを解除します。それは、``savefiles'' で効果がありません。エラーがあるなら、-1 が返され、 errbuf は、適切なエラーメッセージで満たされます。そうでなければ、0 が返されます。 ``non-blocking'' (非ブロッキング) モードで、 pcap_dispatch() でキャプチャ (捕獲) 記述子から読み込む試みは、現在、パケットの読み込が利用可能でないなら、到着するパケットのためのウェート (待ち) をブロックするのではなく、直ちに 0 を返します。 pcap_loop()pcap_next() は、 ``non-blocking'' (非ブロッキング) モードで動作しません。

戻り値

pcap_getnonblock() は、キャプチャ (捕獲) 記述子の現在の ``non-blocking'' (非ブロッキング) 状態を返します。それは、``savefiles'' で常に 0 を返します。エラーがあるなら、-1 が返され、 errbuf は、適切なエラーメッセージで満たされます。

errbuf は、少なくとも PCAP_ERRBUF_SIZE 文字を保持できると想定されます。

関連項目

pcap(3), pcap_loop(3), pcap_next_ex(3), pcap_geterr(3)
5 April 2008