8
#include <iostream>
#include <unistd.h>
#include <stdlib.h>
int main() {
std::cout << 1;
fork();
exit(0);
}
fork
はcout
にストリーミングの後に配置されるが、このコードを印刷11 なぜ?そして、なぜstd::endl
がcout
に追加された場合にのみ、コードは1を出力しますか?なぜfork()は出力が重複するのですか?
#include <iostream>
#include <unistd.h>
#include <stdlib.h>
int main() {
std::cout << 1 << std::endl;
fork();
exit(0);
}
バッファは2つのプロセスで2回フラッシュされます。男、迷惑になるはずです。 –
残念ながら、C++オブジェクトはフォークするとうまく動作しません。基本的に、オブジェクトはコピーを作成せずに効果的にコピーを構築し、C++で構築された多くの保護を回避します。 – SergeyA
私は、標準的なコンテナに 'fork()'が発生するという混乱しか想像できません。ただこれをしないでください。 –