|
fwrite 와 fprint 의 차이점은? 위의 질문은 친구가 넥슨에 면접을 보러 갔을때 나온 질문이었다고 한다. 술자리에서 잠시 나온 이야기였지만, 흥미가 생겨서 지금 찾아보니 잘 정리된 글이 있다. fwrite() & fprintf() -- binary or text?? 우선, 저수준함수인 fwrite 를 오버라이딩해서 파라미터에 따른 서식에 맞게 보다 편리하게 출력할 수 있도록 만든 것이 fprintf 이다. 위의 링크 글에 설명되었듯이, fwrite 는 버퍼에 있는 내용을 그대로 다 출력한다. 반면에 fprintf 는 표준출력 (Standard output stream) 모드로 동작하여 일반적인 문자열 버퍼 출력 방식을 따르게 된다. 즉 '/0' 과 같은 문자열 종료 캐릭터를 만나면 출력을 종료한다. 아래 예제를 보면 명확하다. fprintf 를 사용하여 출력하는 경우 HELLO 까지만 찍고, 문자열 종료 널문자 '\0' 을 만났기 떄문에 출력을 종료한다. 반면에 fwrite 는 '\0' 와 상관없이 버퍼 전체의 내용을 그대로 출력해서 HELLO\0WORLD 를 모두 출력한다. ( 텍스트 파일에서는 HELLO WORLD 로 보임 ) 결국 printf 서식에 맞게 문자열 출력방식으로 출력하고 싶으면 fprintf 를 쓰고, 버퍼에 있는 모든 내용 혹은 버퍼내의 특정 범위의 내용을 그대로 출력하고자 할 때는 fwrite 를 쓰면 된다. 'IT Story > Programming Language' 카테고리의 다른 글
|







지난번에 테스트용 프로그램짜다가 대략 아무거나 맞춰서 넣었는데 말야.. 설명 땡큐~ ^^
쩝.. HDL도 힘들어 죽겠는데 C까지 말성이다.. ㅠㅠ
프로그램은 역시 왕도가 없는 것인가?
왕도는 없는듯... ^^
그 외에도 성능에 관련된 다른 부분이 있어서 구별해서 쓴다고 하던데...
것도 함 찾아봐봐~~ ㅋㅋㅋ 떠넘기기..
시간나면... ^^
오호, 잘보았습니다
ㄳ... ^^
파일공부하다가 잠깐 들렀습니다. 좀 퍼가도 될까요?
그러세요. (출처만 밝혀주심 됩니다)