Тестирование функции вилки в сочетании с Printf я нашел странное поведениеC - вилка и поведение Printf
Например, код:
int main(){
if(fork()==0){
printf("TestString");
}
}
не печатает что-нибудь, в то время как
int main(){
if(fork()==0) {
printf("TestString\n");
}
}
правильно распечатывает TestString. Почему печать новой строки меняет поведение? Я подозреваю, что он может что-то сделать с fflush(), но я не уверен. Могу ли я получить объяснение или ссылку, где я могу ее прочитать? Спасибо за ответ заранее.
EDITED: Объяснение, которое я ищу, является тем, что на самом деле является промывкой, и почему это так же, как и промывка.
Да, вам нужно использовать 'fflush (stdout)' или использовать новую строку только то, что вы сделали. – user1336087
printf буферизуется, и содержимое буфера отображается, когда встречается символ новой строки '\ n'. Промывка означает очистку содержимого буфера, связанного с printf. Я тестировал этот код, и он печатает «TestString» в обоих случаях. –