以下代码会发生什么,程序执行“返回1”还是退出?
int cmd_quit(tok_t arg[]) {
printf("Bye\n");
exit(0);
return 1;
}
答案 0 :(得分:3)
exit()
无论如何都会结束该计划。所以不行。实际上,C运行时总是会执行类似的
exit(main(argc, argv));
执行你的程序。
(意思是:如果 main()
返回,exit()
会自动调用其返回值)
答案 1 :(得分:1)
程序将在遇到return 1;
语句之前退出。
答案 2 :(得分:1)
exit()
函数会导致进程终止。exit()
函数未返回。 return 1
; 答案 3 :(得分:0)
函数exit
将在return
之前执行,但它通常用于异常退出并将失败代码返回给调用者。所以最好反转退出值
exit(1);
return 0;
但是在您提供的代码中,检测实际故障是有意义的。
if (printf("Bye\n") <= 0)
exit(1);
return 0;