3

CFWriteStreamを呼び出しCFWriteStreamClose()た直後に呼び出すものがあるとしますCFWriteStreamWrite()。両方の呼び出しは同じスレッドで行われます。クローズ操作は、ストリームが破棄される前に、ストリームに書き込まれた/ストリームによってバッファリングされたバイトが実際に受信者に送信されることを保証しますか?

要するに、呼び出しCFWriteStreamClose()はストリームをフラッシュしますか?

4

1 に答える 1

2

ドキュメントによると、そうではありません。ストリーム上の「バイトのフローを終了」します。は同期中CFWriteStreamWriteですが、書き込みたいすべてのバイトが1回の呼び出しで書き込まれることを保証するものではありません。したがって、実際に書き込まれたバイト数を返します。あなたの仕事はあなたのデータが使い果たされるか、さもなければあなたがやめることに決めるまでそれを呼び続けることです。

close関数の呼び出しは、ストリームに関連付けられているすべてのリソースをクリーンアップするように設計されています。

于 2011-12-07T04:49:21.467 に答える