Unixソケット-ヘルパー関数

この章では、ソケットプログラミングの実行中に使用されるすべてのヘルパー関数について説明します。その他のヘルパー関数は、章で説明されています-Ports and Services、およびネットワーク Byte Orders

書き込み機能

書き込み関数バッファからnbyteバイトを書き込む試みがで指さBUF、開いているファイル記述子に関連付けられたファイルにfildesがします

send()関数を使用して、データを別のプロセスに送信することもできます。

#include <unistd.h>

int write(int fildes, const void *buf, int nbyte);

正常に完了すると、write()は、ファイルに関連付けられたファイルに実際に書き込まれたバイト数を返します。この数がnbyteを超えることはありません。それ以外の場合は、-1が返されます。

パラメーター

  • fildes −ソケット関数から返されるソケット記述子です。

  • buf −送信したいデータへのポインタです。

  • nbyte−書き込むバイト数です。nbyteが0の場合、ファイルが通常のファイルであれば、write()は0を返し、他の結果はありません。それ以外の場合、結果は指定されていません。

読み取り機能

リード関数バッファに関連付けられたファイルからnbyteバイトを読み取ろうと、fildesが、バッファには、bufが指します。

また、recv()関数を使用して、データを別のプロセスに読み取ることもできます。

#include <unistd.h>

int read(int fildes, const void *buf, int nbyte);

正常に完了すると、write()は、ファイルに関連付けられたファイルに実際に書き込まれたバイト数を返します。この数がnbyteを超えることはありません。それ以外の場合は、-1が返されます。

パラメーター

  • fildes −ソケット関数から返されるソケット記述子です。

  • buf −情報を読み込むためのバッファです。

  • nbyte −読み取るバイト数です。

フォーク機能

フォーク関数は、新しいプロセスを作成します。子プロセスと呼ばれる新しいプロセスは、呼び出し元のプロセス(親プロセス)の正確なコピーになります。子プロセスは、親プロセスから多くの属性を継承します。

#include <sys/types.h>
#include <unistd.h>

int fork(void);

正常に完了すると、fork()は0を子プロセスに返し、子プロセスのプロセスIDを親プロセスに返します。それ以外の場合は、-1が親プロセスに返され、子プロセスは作成されず、エラーを示すためにerrnoが設定されます。

パラメーター

  • void −パラメータが不要であることを意味します。

BZEROの機能

BZEROの機能を置くnbyte文字列内のNULLバイトを。この関数は、すべてのソケット構造をnull値に設定するために使用されます。

void bzero(void *s, int nbyte);

この関数は何も返しません。

パラメーター

  • s−nullバイトで埋める必要のある文字列を指定します。これは、ソケット構造変数へのポイントになります。

  • nbyte−null値で埋めるバイト数を指定します。これは、ソケット構造のサイズになります。

BCMPの機能

BCMPの関数は、バイト文字列s2に対し、バイト文字列S1を比較します。両方の文字列はnbyteバイト長であると想定されています。

int bcmp(const void *s1, const void *s2, int nbyte);

この関数は、両方の文字列が同一の場合は0を返し、それ以外の場合は1を返します。nbyteが0の場合、bcmp()関数は常に0を返します。

パラメーター

  • s1 −比較する最初の文字列を指定します。

  • s2 −比較する2番目の文字列を指定します。

  • nbyte −比較するバイト数を指定します。

BCOPY機能

BCOPY機能をコピーしnbyteは、文字列s2に文字列S1からバイト。重複する文字列は正しく処理されます。

void bcopy(const void *s1, void *s2, int nbyte);

この関数は何も返しません。

パラメーター

  • s1 −ソース文字列を指定します。

  • s2v −宛先文字列を指定します。

  • nbyte −コピーするバイト数を指定します。

memsetのの機能

memsetのの機能は同じようにセット構造体変数にも使用されていますbzero。以下に示す構文を見てください。

void *memset(void *s, int c, int nbyte);

この関数はvoidへのポインタを返します。実際、設定されたメモリへのポインタであり、それに応じてキャストする必要があります。

パラメーター

  • s −設定するソースを指定します。

  • c −nbyte桁に設定する文字を指定します。

  • nbyte −設定するバイト数を指定します。