0

このコード行は何をしますか

send(4, "test\n", 15, 0);

コードにソケットが定義されていない場合は?

4

1 に答える 1

6

おそらく失敗し、EBADFエラーが発生します(errno)。

可能性のあるエラー値の詳細については、マニュアル ページを参照してください。

(最初の引数)のハードコードされた記述子値でソケットを設定するコードがその前にある場合、成功する可能性があることに注意してください。それを試みる 1 つの方法4については、関数を参照してください。dup()

また、そのセットアップを行う親プロセスである可能性があるため、ソース ファイルには表示されず、黙って想定されているだけである可能性があることにも注意してください。

最後に、提供されたバッファの外での読み取りによる未定義の動作に注意してください (文字列の長さは 15 文字ではありません)。これはかなり疑わしいコードです。

于 2013-05-21T11:47:48.857 に答える