SOC_Fcntl

構文

#include <nitroWiFi/soc.h>
#define SOC_F_GETFL 3
#define SOC_F_SETFL 4
#define SOC_O_NONBLOCK 0x04
int SOC_Fcntl( int s, int cmd, int mode );

引数

s ソケット記述子。
cmd コマンド(SOC_F_*)。
mode 設定したい値(cmdがSOC_F_SETFLの場合)。

返り値

0以上 成功。
-1 エラー。

注意:追加のエラーが今後のライブラリリリースで生じたり返されることがあります。すべての負の返り値は汎用のエラーとして扱ってください。

説明

オープン済みのソケット記述子に対して以下の操作を実行します。

コマンド mode 返り値 説明
SOC_F_GETFL なし ソケット記述子のフラグ(成功時) ソケット記述子のフラグを取得します。
SOC_F_SETFL SOC_O_* フラグの論理和 処理の成否 ソケット記述子のフラグを設定します。

以下は、ソケット記述子を非封鎖モードに設定するコードです。

val = SOC_Fcntl(s, SOC_F_GETFL, 0);
SOC_Fcntl(s, SOC_F_SETFL, val | SOC_O_NONBLOCK);

ソケット記述子を封鎖モードに戻す場合は、以下のコードを使ってください。

val = SOC_Fcntl(s, SOC_F_GETFL, 0);
SOC_Fcntl(s, SOC_F_SETFL, val & ~SOC_O_NONBLOCK);

ソケット記述子はデフォルトでは封鎖モードです。

参照

SOC_Connect, SOC_Accept, SOC_Recv, SOC_Send

履歴

2008/05/13 引数modeの修正、説明の修正
2005/09/13 初版