您能帮我理解以下代码吗?
void errorexit(char *pchar) {
// display an error to the standard err.
fprintf(stderr, pchar);
fprintf(stderr, "\n");
exit(1);
}
答案 0 :(得分:0)
调用errorexit("Error Message")
会将“错误消息”打印到标准错误流(通常在终端中)并退出程序。调用程序的任何程序(例如shell)都会知道自程序以非零状态退出后出现错误。
答案 1 :(得分:0)
它通过fprintf将pchar指向的字符串打印到标准错误输出,然后强制应用程序退出,返回码为1.这将在应用程序无法继续运行时用于严重错误。
答案 2 :(得分:0)
该函数将提供的字符串和换行符打印到stderr,然后终止当前正在运行的程序,提供1作为返回值。
fprintf
与printf
类似,它输出字符,但fprintf
稍有不同,因为它将文件句柄作为参数。我这种情况stderr
是标准错误的文件句柄。此句柄已由stdio.h为您定义,并对应于错误输出流。 stdout
是printf
输出的内容,因此fprintf(stdout, "hello")
相当于printf("hello")
。
exit
是一个函数,它终止当前进程的执行,并将其参数的任何值作为返回代码返回给父进程(通常是shell)。非零返回码通常表示失败,具体值表示失败的类型。
如果你从shell运行这个程序:
#include <stdio.h>
#include "errorexit.h"
int main(int argc, char* argv[])
{
printf("Hello world!\n");
errorexit("Goodbye :(");
printf("Just kidding!\n");
return 0;
}
你会看到这个输出:
Hello world!
Goodbye :(
你的shell会显示“1”作为返回值(在bash中,你可以使用echo $?
查看最后一个返回码。)
请注意“开个玩意儿!”将不打印,因为errorexit
调用exit
,在main
完成之前结束该计划。