테스트 나는 이상한 행동 예를 들어C - 포크와 printf와 행동
에게 코드 발견의 printf와 함께 포크 기능 : 동안 아무것도 출력하지 않습니다
int main(){
if(fork()==0){
printf("TestString");
}
}
을
int main(){
if(fork()==0) {
printf("TestString\n");
}
}
은 TestString을 올바르게 인쇄합니다. 왜 새로운 줄을 인쇄하면 그 행동이 바뀌는가? 나는 그것이 fflush()로 무언가를 할지도 모른다라고 생각한다. 그러나 나는 확실하지 않다. 내가 읽을 수있는 설명이나 링크를 얻을 수 있을까요? 미리 답변 해 주셔서 감사합니다.
EDITED : 내가 찾고있는 설명은 실제로 플러시되는 것이고 플러시와 같은 이유입니다.
네,'fflush (stdout)'을 사용하거나 당신이했던 것과 똑같은 줄 바꿈을 사용해야합니다. – user1336087
printf가 버퍼링되고, '\ n'문자가 나왔을 때 버퍼 내용이 표시됩니다. Flush는 printf와 관련된 버퍼의 내용을 지우는 것을 의미합니다. 이 코드를 테스트하고 두 경우 모두 "TestString"을 인쇄합니다. –