我知道两者都可以作为错误消息,
perror(" ");
fprintf(stderr, " ");
但它们之间真正的区别是什么?每个的优点/缺点是什么?
答案 0 :(得分:4)
perror()函数应映射通过的访问错误号 符号errno到语言相关的错误消息,应该是 写入标准错误流如下:
首先(如果s不是空指针且s指向的字符不是空字节),则s指向的字符串后跟a <结肠>和一个< space>。
然后是错误消息字符串,后跟< newline>。
错误消息字符串的内容应与那些内容相同 由strerror()以参数errno返回。
所以,
perror( " " );
会发出类似
的内容 : invalid argument
到stderr
,具体取决于errno
的当前值。
但是
fprintf( stderr, " " );
只会向stderr
发出一个空格字符,而不会打印当前errno
值的字符串表示。
fprintf( stderr, " " );
非常无用。 perror( " " );
将提供有关errno
的当前值的数据。