C 规范要求所有 C 程序都有 3 个开放的流可供它们使用:stdout
、stdin
、stderr
.
用户可以根据需要使用这些流,例如:
fprintf(stdout, "lol");
fputs("oops", stderr);
fgets(buffer, 20, stdin);
C 标准库中的一些函数隐式使用这些函数,例如:
printf("lol"); /* implicitly uses stdout */
puts("rofl"); /* implicitly uses stdout */
int c = getchar(buffer); /* implicitly uses stdin */
- C 标准库中的任何函数是否隐式使用
stderr
? - C 标准库的常见实现中的任何
stderr
函数(例如 Linux 上的 GNU 的 glibc)是否隐式使用?