<分区>
我在我的代码中使用 atexit() 函数来清理函数调用,但它不起作用。
#include<stdio.h>
void ftn(void)
{
printf(" Function called --> exit\n");
return;
}
int main(void)
{
int x = 0;
atexit(ftn);
for(;x<0xffffff;x++);
_exit(0);
}
如有任何帮助,我们将不胜感激。
<分区>
我在我的代码中使用 atexit() 函数来清理函数调用,但它不起作用。
#include<stdio.h>
void ftn(void)
{
printf(" Function called --> exit\n");
return;
}
int main(void)
{
int x = 0;
atexit(ftn);
for(;x<0xffffff;x++);
_exit(0);
}
如有任何帮助,我们将不胜感激。
最佳答案
atexit() 函数的这种行为是由于使用了函数 _exit()。此函数不会调用 atexit() 等清理函数。如果需要调用 atexit(),则应使用 exit() 或“return”,而不是 _exit()。
作为:
#include<stdio.h>
void ftn(void)
{
printf(" Function called --> exit\n");
return;
}
int main(void)
{
int x = 0;
atexit(ftn);
for(;x<0xffffff;x++);
exit(0);
}
关于c - 如何使用 atexit() 函数来清理函数调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56355008/