QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 954|回复: 2

很菜鸟,请教为什么用fprintf()而不用printf()

[复制链接]
发表于 2004-1-2 22:49:34 | 显示全部楼层 |阅读模式
我看到很多程序往屏幕打印一些信息时,都用的是fprintf(STDERR,"需要打印的信息"),而不是用printf()直接打印,这是为什么呢?而且有些信息我觉得并不是错误信息,为什么要输出到标准出错文件STDERR呢,为什么不是STDOUT?

虽然很菜鸟,但还是希望各位能指点一下。我觉得如果用fprintf(STDOUT,"需要打印的信息")的话,那和直接printf()不是一样了吗?
发表于 2004-1-2 23:56:06 | 显示全部楼层
what if the STDOUT is not to the screen for some kind of machine, but is to other devices ie, printer.
use STDOUT can interact with the system better, what if the c version of some machine defines printf not always to STDOUT? so it won't be redirected.
回复

使用道具 举报

发表于 2004-1-13 22:09:50 | 显示全部楼层
很简单的一个道理就是,假如你重定向了stdout,程序的错误信息仍然可以打印到屏幕上。比如编译安装软件的时候,你可以make >/dev/null,过滤掉一般的输出信息,屏幕会只显示error和warning.
再深一层的意思,大概就是楼上老兄说的了,有时候系统的标准输出不一定是屏幕。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-9 03:19 , Processed in 0.036886 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表