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 |