相同
<1> 两者都是默认将信息输出到终端。
<2> 可通过setvbuf来改变其输出方式。
不同:
<1> stdout默认是基于行的缓冲,即字符会缓冲起来,直到碰到换行符、缓冲区满、fflush或者文件关闭(程序返回退出)的时候才将这些字符输出;而stderr是无缓冲的,字符会直接输出。
<2> 如果将输出定向到文件,标准输出会将信息输出到文件,而标准错则会输出到屏幕。
对于printf函数,其为标准输出,printf("xxxx")等效于fprintf(stdout, "xxxx");
<1> 两者都是默认将信息输出到终端。
<2> 可通过setvbuf来改变其输出方式。
不同:
<1> stdout默认是基于行的缓冲,即字符会缓冲起来,直到碰到换行符、缓冲区满、fflush或者文件关闭(程序返回退出)的时候才将这些字符输出;而stderr是无缓冲的,字符会直接输出。
<2> 如果将输出定向到文件,标准输出会将信息输出到文件,而标准错则会输出到屏幕。
对于printf函数,其为标准输出,printf("xxxx")等效于fprintf(stdout, "xxxx");