首页 > 试题广场 >

在C语言中,下列哪一个函数用于在其它函数中安全地终止main

[单选题]

在C语言中,下列哪用于在其它函数中安全地终止main函数的函数为()

  • return(expr);
  • exit(expr);
  • abort();
  • atexit(expr);
abort()函数用于不正常地终止一个正在执行的程序。
exit()函数用于正常终止程序。
atexit()函数可以把一些函数注册为退出函数(exit function)。
return 0;     一般0代表的是正常结束
return -1;    -1代表非正常结束
return ;       void 返回是空,void返回值可以什么也不写,可以写return;
return NULL;   如果数据类型是指针类型,那我们一般成功的时候返回相应的地址,失败的时候返回NULL



发表于 2019-03-10 18:47:44 回复(1)
exit用于在程序运行的过程中随时结束程序,exit的参数是返回给OS的。main函数结束时也会隐式地调用exit函数。exit函数运行时首先会执行由atexit()函数登记的函数,然后会做一些自身的清理工作,同时刷新所有输出流、关闭所有打开的流并且关闭通过标准I/O函数tmpfile()创建的临时文件。exit是结束一个进程,它将删除进程使用的内存空间,同时把错误信息返回父进程,而return是返回函数值并退出函数。return是语言级别的,它表示了调用堆栈的返回;return( )是当前函数返回,当然如果是在主函数main, 自然也就结束当前进程了,如果不是,那就是退回上一层调用。在多个进程时。如果有时要检测上个进程是否正常退出。就要用到上个进程的返回值,依次类推。而exit是系统调用级别的,它表示了一个进程的结束。
发表于 2020-12-08 22:42:38 回复(0)
其实关键在于,return它不是一个函数啊。。。
发表于 2019-04-09 14:32:50 回复(1)
  • exit()函数用于正常结束进程

    • 会调用进程终止处理函数atexit(),并且会刷新IO缓冲
  • _exit()_Exit()函数都是用于正常结束进程

    • 前者是系统调用,后者是标准库函数
    • exit()区别:不会调用atexit(),不会刷新IO缓冲
  • abort()函数用于异常终止进程

  • atexit()函数用于注册一个进程在正常终止时要调用的函数

    • 例如通过return语句在main函数中结束或者调用exit()函数结束进程,会自动调用atexit()注册的函数

    • 可以注册多个函数,这些函数将按照注册的逆序依次被调用

  • return语句用于退出当前函数

    • return语句在main函数中执行时,相当于调用exit()函数,此时会结束进程。
    • 在非main函数中,return只是返回到调用该函数的地方,不会结束整个进程。
发表于 2024-09-12 13:29:24 回复(0)
abort()函数用于不正常地终止一个正在执行的程序。
exit()函数用于正常终止程序。
atexit()函数可以把一些函数注册为退出函数(exit function)。
return 0;     一般0代表的是正常结束 return -1;    -1代表非正常结束 return ;       void 返回是空,void返回值可以什么也不写,可以写return; return NULL;   如果数据类型是指针类型,那我们一般成功的时候返回相应的地址,失败的时候返回NULL
发表于 2025-10-17 10:58:08 回复(1)
abort()函数用于不正常地终止一个正在执行的程序。 exit()函数用于正常终止程序。 atexit()函数可以把一些函数注册为退出函数(exit function)。 return 0; 一般0代表的是正常结束 return -1; -1代表非正常结束 return ; void 返回是空,void返回值可以什么也不写,可以写return; return NULL; 如果数据类型是指针类型,那我们一般成功的时候返回相应的地址,失败的时候返回NULL
发表于 2023-06-07 18:19:25 回复(0)