Unix-sockets-socket-helper-functions
Unixソケット-ヘルパー関数
この章では、ソケットプログラミング中に使用されるすべてのヘルパー関数について説明します。 他のヘルパー機能については、章-ポートとサービス、およびネットワーク*バイト順*で説明しています。
_write_関数
_write_関数は、_buf_が指すバッファーから、開いているファイル記述子_fildes_に関連付けられたファイルにnbyteバイトを書き込もうとします。
_send()_関数を使用して、別のプロセスにデータを送信することもできます。
#include <unistd.h>
int write(int fildes, const void *buf, int nbyte);
正常に完了すると、write()は、fildesに関連付けられたファイルに実際に書き込まれたバイト数を返します。 この数がnbyteを超えることはありません。 それ以外の場合、-1が返されます。
パラメーター
- fildes -これは、ソケット関数によって返されるソケット記述子です。
- buf -送信するデータへのポインタです。
- nbyte -書き込まれるバイト数です。 nbyteが0の場合、ファイルが通常のファイルである場合、write()は0を返し、他の結果はありません。それ以外の場合、結果は指定されていません。
_read_関数
_read_関数は、バッファーfildesに関連付けられているファイルからnbyteバイトをbufが指すバッファーに読み取ろうとします。
_recv()_関数を使用して、データを別のプロセスに読み込むこともできます。
#include <unistd.h>
int read(int fildes, const void *buf, int nbyte);
正常に完了すると、write()は、fildesに関連付けられたファイルに実際に書き込まれたバイト数を返します。 この数がnbyteを超えることはありません。 それ以外の場合、-1が返されます。
パラメーター
- fildes -これは、ソケット関数によって返されるソケット記述子です。
- buf -情報を読み込むバッファです。
- nbyte -読み取るバイト数です。
_fork_関数
_fork_関数は、新しいプロセスを作成します。 子プロセスと呼ばれる新しいプロセスは、呼び出し元プロセス(親プロセス)の正確なコピーになります。 子プロセスは、親プロセスから多くの属性を継承します。
#include <sys/types.h>
#include <unistd.h>
int fork(void);
正常に完了すると、fork()は0を子プロセスに返し、子プロセスのプロセスIDを親プロセスに返します。 それ以外の場合、-1が親プロセスに返され、子プロセスは作成されず、エラーを示すためにerrnoが設定されます。
パラメーター
- void -パラメータが不要であることを意味します。
_bzero_関数
bzero_関数は、文字列_s_に_nbyte nullバイトを配置します。 この関数は、すべてのソケット構造にヌル値を設定するために使用されます。
void bzero(void *s, int nbyte);
この関数は何も返しません。
パラメーター
- s -nullバイトで埋める必要がある文字列を指定します。 これは、ソケット構造変数へのポイントになります。
- nbyte -null値で埋められるバイト数を指定します。 これは、ソケット構造のサイズになります。
_bcmp_関数
_bcmp_関数は、バイト文字列s1とバイト文字列s2を比較します。 両方の文字列は、nbyteバイト長であると想定されます。
int bcmp(const void *s1, const void *s2, int nbyte);
この関数は、両方の文字列が同一の場合は0を返し、そうでない場合は1を返します。 nbyteが0の場合、bcmp()関数は常に0を返します。
パラメーター
- s1 -比較する最初の文字列を指定します。
- s2 -比較する2番目の文字列を指定します。
- nbyte -比較するバイト数を指定します。
_bcopy_関数
_bcopy_関数は、nbyteバイトを文字列s1から文字列s2にコピーします。 重複する文字列は正しく処理されます。
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 -設定するバイト数を指定します。