2

私は c を使用しています。ファイル記述子として fd1 があります。このように 2 回呼び出すことはできますか?

main () {
....
shutdown(fd1, SHUT_WR);
....
shutdown(fd1, SHUT_WR);
....
}

個人的には、fd1 はまだ本当にフリーになっていないので、これでうまくいくと思います。誰かに確認してもらいたいだけです。

4

4 に答える 4

2

2番目の呼び出しの戻り値(shutdown(2)おそらく戻り-1値)を確認し、の値を確認する必要がありますerrno(3)

于 2010-11-13T04:08:06.143 に答える
0

一度呼び出すと出力をシャットダウンし、もう一度呼び出すと入力をシャットダウンできます。その逆も可能です。出力をシャットダウンするために2回呼び出すと、他の方法で2つのFINが送信されることはありません。入力をシャットダウンするために2回呼び出すことも、2回は何もできません。したがって、どちらも実際のポイントを持つことはできません。

注意:ファイル記述子で呼び出すことはできません。ソケット記述子で呼び出すことができます。

于 2010-11-13T04:14:12.303 に答える
0

呼び出しshutdownは、TCP レベルのシャットダウン シーケンスを開始するだけです。ソケット記述子は、呼び出すまで再利用のために解放されることはありませんclose

何度でも呼び出すことができますshutdownが、その後の呼び出しでエラーが発生する可能性があります。

closeソケットの使用が完了したら呼び出します。

于 2010-11-13T07:46:49.913 に答える