最近、私はいくつかの小さなデータシリアル化のデモに取り組んでいます。しかし、構造体からファイル記述子にバイナリデータを転送する方法を考えていました。
fwrite
これを行う唯一の(簡単な)方法は(これを行う場合write
は、そう言ってください)を介することであることを私は知っているので、次のいずれかがあります:
A)fwrite
ファイル記述子で使用するための呼び出し?
また
B)?FILE *
の反対のように、既存のファイル記述子/ソケットの周りを作成する方法。fileno
最近、私はいくつかの小さなデータシリアル化のデモに取り組んでいます。しかし、構造体からファイル記述子にバイナリデータを転送する方法を考えていました。
fwrite
これを行う唯一の(簡単な)方法は(これを行う場合write
は、そう言ってください)を介することであることを私は知っているので、次のいずれかがあります:
A)fwrite
ファイル記述子で使用するための呼び出し?
また
B)?FILE *
の反対のように、既存のファイル記述子/ソケットの周りを作成する方法。fileno
fdopenを使用します。
A)とB)の両方に答えがあります:
A)はい、write()
ファイル記述子の場合はfwrite()
ファイルポインタの場合と類似しています。
if (fwrite(&foo, sizeof foo, 1, fp) < 1)
/* Not successful */
また
if (write(fd, &foo, sizeof foo) < sizeof foo)
/* Not immediately successful */
B)Matt Joinerが言うように、はのfdopen()
逆ですfileno()
。