我已经google了。我无法弄清楚发生了什么。
:此:
perror("some error message");
exit(0);
会将此打印到stdout:
“一些错误消息:成功”
答案 0 :(得分:3)
perror
打印出“成功”,而不是exit(0)
。
原因是在调用perror
之前,没有设置错误(因此errno
为0,这是程序启动时的默认值)。因此perror
打印出Success
。
检查这个
答案 1 :(得分:1)
请参阅perror
perror
。 <errno.h>
接受一个参数并将其打印出来,后跟冒号和相关的错误消息,这可能有助于解释为什么某些东西不能正常工作。在你的情况下,没有错误,因此打印出的唯一相关信息是“好的,从这里看起来一切都很好。”
如果出现错误,您可以通过加入errno
来测试man page的值。如果perror
设置为0以外的任何值,则表示某种失败(这就是您使用perror
的原因)。如果它设置为0,一切都应该没问题,perror
打印“成功”。
使用char * c = malloc(1024);
if(c == NULL) perror("malloc");
的正确方法是在检测到错误时使用它向用户打印有意义的错误消息。例如:
exit(0)
{{1}}无关紧要。
答案 2 :(得分:0)
perror()
:获取错误编号的人类可读字符串,您可以为错误消息指定格式以获取与标准错误输出不同的内容,如果您没有定义任何内容,则会收到“成功”消息
perror("some error message"); // prints "some error message: Success", because no error occurs.
exit(0); //exit with code "0"