글쓴이: 익명 사용자 / 작성시간: 수, 2002/05/08 - 6:35오후
i/o stream에 "\n" (라인피드인가요?) 이 들어간 것과 안들어간 것의 차이
는 뭔가요?
printf("%s", "string");
printf("%s\n", "string");
은 엄연히 다르더군요.
저 문장 다음에 버퍼를 쓰지 않는 입출력 함수(read, write)가 나올 경우
출력 순서가 뒤바뀌는 경우가 생기는데, 개행문자가 들어갈 경우
출력 순서가 정상적으로 나오더군요.
Re: i/o stream에서 라인피드의 삽입여부에 따른 차이
linux를 포함하는 유닉스 계열에서는 printf의 경우 buffered stream을 기
본적으로 지원합니다. man stdio하시면..나올 겁니다.
이 버퍼드 I/O스트림은 데이터가 입출력 되자마자 바로바로 I/O를 처리 하
는 것이 아니라 버퍼에 임시 저장했다가 몇가지 경우에 해당될때 그때 버
퍼의 내용을 해당 I/O로 보내게 되는 데여..
님이 말씀하신 "\n"이 그 경우에 해당되는 것 입니다.
이 외에도 버퍼가 꽉 찾을때도 I/O로 전송되구염...
fflush()가 불리거나, 프로그램종료시(해당 I/O가 닫힐때)에도 버퍼의 내
용이 I/O로 전송됩니다.
댓글 달기