C/C++에서 printf()의 리턴값은 무엇일까요?

NAME

fprintf, printf, snprintf, sprintf - print formatted output

SYNOPSIS

#include <stdio.h>

int fprintf(FILE *restrict
stream, const char *restrict format, ...);
int printf(const char *restrict
format, ...);
int snprintf(char *restrict
s, size_t n,
       const char *restrict
format, ...);
int sprintf(char *restrict
s, const char *restrict format, ...);

The Open Group Base Specifications에서 살짝 업어온 printf() 계열 함수들의 용법입니다.

그런데, 리턴타입을 보면 void가 아니라 int입니다.
printf() 계열 함수들의 리턴값은 무엇일까요?

답 열기


대학원 다닐 때 한 수업 시간에 교수님께서 하신 질문이었습니다.
공교롭게도 (왜 그런 의문을 품었는지는 기억나지 않지만) 수업 며칠 전에 궁금해서 Solaris의 man page를 뒤져봤었습니다. 이걸 RTFM이라고 하죠... Read The F*cking Manual... 아니, Fine인가요? ^^;;

그래서 이 특이한 질문에 무난하게 대답할 수 있었습니다.

그러자, 교수님 말씀이...
그걸 도대체 어떻게 알고있어요?
하시더군요. 글쎄요... 왜 찾아봤을까요? printf() 함수를 사용하는 프로그래머의 0.00001%도 사용하지 않을 것을 말이죠...