我们在写C程序时经常遇到printf(),fprintf(),perror(),这些东西到底有什么作用。说到这不得不提及stdin,stdout,stderr。想想,我们在用C去写文件时的操作,File *fp=fopen(),这个fp就是我们向系统申请的,相当于一通往文件的通道。
其实,stdin,stdout,stderr就是这个fp,不过他是随着计算机系统的开启默认打开的,其中0就是stdin,表示输入流,指从键盘输入,1代表stdout,2代表stderr,1,2默认是显示器。printf()其实就是向stdout中输出,等同于fprintf(stdout,“****”),perror()其实就是向stderr中输出,相当于fprintf(stderr,“***”),那到底stdout,和stderr有什么区别和作用呢?
我们在写程序时用printf()是为了我们能监控我们的程序运行状况,或者是说debug,如果我们的程序是一直运行,不停下来,我们不可能时刻盯着屏幕去看程序输出,这时我们就可以用文件重定向。将输出到一文件中,我们以后就可以看这文件就行。举个例子,test.c
[cpp] view plain copy
1. <pre class="cpp" name="code">#include<stdio.h>
2.

本文介绍了C语言中标准输入(stdin)、标准输出(stdout)和标准错误(stderr)的概念及其用途。printf()和fprintf()用于向stdout输出,perror()则向stderr输出。通过文件重定向,可以将输出内容保存到文件中,如使用1>和2>分别重定向stdout和stderr。同时,stderr没有缓冲,立即输出,而stdout默认行缓冲。可以通过fflush(stdout)实现stdout的实时输出。
最低0.47元/天 解锁文章
1446

被折叠的 条评论
为什么被折叠?



