C 为什么要为错误消息设置stdout

C 为什么要为错误消息设置stdout,c,stdout,stderr,error-reporting,C,Stdout,Stderr,Error Reporting,是否有任何理由在标准输出而不是标准输出上打印错误 我看到一些人分别使用标准输出printf()来打印错误消息。有什么理由这么做吗?或者只是懒得使用stderr?这是懒惰。stderr是为了打印错误消息而创建的,因此您可以重定向程序的输出,而无需混合错误消息。另外,我认为默认情况下stderr是无缓冲的,因此,如果您的程序崩溃,将打印到崩溃点的所有错误消息(此行为可以通过使用setvbuf进行修改)。谢谢。“所以你可以重定向一个程序的输出,而不会有混合的错误消息”我知道,这正是我的问题,我不能。

是否有任何理由在标准输出而不是标准输出上打印错误


我看到一些人分别使用标准输出printf()来打印错误消息。有什么理由这么做吗?或者只是懒得使用stderr?

这是懒惰。stderr是为了打印错误消息而创建的,因此您可以重定向程序的输出,而无需混合错误消息。另外,我认为默认情况下stderr是无缓冲的,因此,如果您的程序崩溃,将打印到崩溃点的所有错误消息(此行为可以通过使用setvbuf进行修改)。

谢谢。“所以你可以重定向一个程序的输出,而不会有混合的错误消息”我知道,这正是我的问题,我不能。