我已经读过这两个perror()
并printf()
写入终端屏幕.但是perror()
写入stderr
,同时printf()
写入stdout
.因此,要打印错误perror()
,printf()
可以在何时使用.
printf()
不能写stderr
. fprintf()
能够. perror()
总是这样.
没有要求写入任何一个stdout
或stderr
写入终端屏幕 - 这取决于实现(因为并非所有系统都有终端).也没有要求写入stdout
并stderr
导致写入同一设备(例如,一个可以重定向到文件,而另一个被重定向到管道).
perror()
将通过内置的错误代码含义知识实现,由静态表示,errno
标准库中的各种函数使用它来报告错误情况.特定值的含义是实现定义的(即它们在编译器和库之间有所不同).