在C++中使用exit
有question.答案是这样的,主要是因为RAII,这不是一个好主意,例如,如果exit
在代码中的某个地方被调用,对象的析构函数将不会被调用,因此,如果析构函数打算将数据写入文件,这将不会发生,因为析构函数没有被调用.
我很感兴趣的是这种情况在C中是如何发生的.类似的问题在C中也适用吗?我想既然在C中我们不使用构造函数/析构函数,C中的情况可能会有所不同.所以在C中使用exit
可以吗?例如,我看到C语言中有时会用到以下函数:
void die(const char *message)
{
if(errno) {
perror(message);
} else {
printf("ERROR: %s\n", message);
}
exit(1);
}