#include <iostream>
#include <unistd.h>
#include <stdlib.h>
int main() {
std::cout << 1;
fork();
exit(0);
}
fork
cout
içine akış sonra bulunur, ancak bu kod baskılar 11. Neden? Ve std::endl
cout
'a eklendiğinde, kod yalnızca 1'i basıyor mu?Çatal() neden çoğaltılan çıktıyla sonuçlanır?
#include <iostream>
#include <unistd.h>
#include <stdlib.h>
int main() {
std::cout << 1 << std::endl;
fork();
exit(0);
}
Arabellekler iki işlemde iki kez temizlenir. Bu sinir bozucu olmalı. –
Ne yazık ki, C++ nesneleri forking ile iyi oynamıyor. Temel olarak, nesne kopya oluşturmadan etkili bir şekilde kopyalanır ve bu da C++ tarafından çok fazla koruma sağlar. – SergeyA
Sadece bir fork() 'ın standart konteynerlere zarar vereceğini hayal edebiliyorum. Sadece bunu yapma. –