Вот моя C программа:Понимание вывода STDOUT при использовании с вилкой()
int main() {
fork();
printf("one ");
fork();
printf("two ");
}
Выход:
one two one two one two one two
Однако, если изменить код и добавить \n
к печати заявление:
int main() {
fork();
printf("one\n");
fork();
printf("two\n");
}
выход:
one
one
two
two
two
two
Или иногда (порядок можно изменить):
one
two
one
two
two
two
Почему выходные 8
слова в первой программе и 6
во втором?
stdout - строка буферизирована. Но это не имеет значения, так как порядок выполнения процесса произволен, так что это может произойти в любом порядке. –
Это очень похоже на домашнюю проблему. Какое объяснение вы считали? – Peter
Это не проблема домашних заданий :) Я хочу понять, что перезапись буфера происходит здесь. –