讨论一下,exit()和return()之间的区别....

westar 2003-12-30 09:35:10
谁能告诉我....
...全文
70 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
ks9960 2004-01-13
  • 打赏
  • 举报
回复
to fierygnu(va_list):谢谢,过了这几天又来重温好像明白了,呵呵。谢谢!
fierygnu 2004-01-02
  • 打赏
  • 举报
回复
to aaassd(一笑而过):如果函数返回的是void,没关系;否则返回值就是随机值了。

ks9960(snk):怎么不明白?
aaassd 2004-01-02
  • 打赏
  • 举报
回复
在一般函数不写return也没有提示错误,这样会有什么影响?
t0mychen 2004-01-02
  • 打赏
  • 举报
回复
我顶我顶
嘿嘿~~~再顶
ks9960 2003-12-31
  • 打赏
  • 举报
回复
说的人多了,刚看明白一点马上又被弄晕了,谁来整理一下,总结陈词啊。
blh 2003-12-31
  • 打赏
  • 举报
回复
TO: tj0120(云天)
当进程正常退出后,进程执行过程中所有动态分配的内存全部会被释放,包括打开的文件描述符,操作系统会把未写入磁盘的内容写入磁盘,并且关闭这些文件描述符
blh 2003-12-31
  • 打赏
  • 举报
回复
return:C语言基本语法,表示退出当前函数,返回调用者(包括清理堆栈、恢复寄存器等)
exit:是一个函数,用于退出程序
两个的意思是完全不同的
虽然在main中两者产生的结果相似,但本质是不同的
广州云天 2003-12-31
  • 打赏
  • 举报
回复
都对,只是若想非正常退出程序非用exit不可, 只有在main里用return才可以退出程序,而在子程序中return只是回到上一级. 不过用exit可要小心了, 虽系统会清理现场,但c中, 用户动态申请的内存是不能释放的
809982 2003-12-30
  • 打赏
  • 举报
回复
来一晚了,都在对的
icedust 2003-12-30
  • 打赏
  • 举报
回复
如果是main()函数的return,就相当于exit
CoolQ 2003-12-30
  • 打赏
  • 举报
回复
return是函数返回,而exit是退出,当然如果在main的最后,两者的效果是一样的,但是在非main函数中,最好不用exit.
另外需要指出的一点是:
如果你的main函数是这样声明的话
int main(int argc, char *argv[])
如果你用return 0;返回,编译器是不会给出任何错误的.
但是如果你用exit(0)返回的话,编译器会提示main函数没有返回值。其实exit就是把0做为了返回值(通过%EAX),但是那是到了最后的代码生成阶段,而编译器的Warning提示实在语法分析这一段就给出来的。
lasmobra 2003-12-30
  • 打赏
  • 举报
回复

return是c语言级定义的函数返回的保留字,返回该函数的最终结果或者空.
exit是系统库实现的一个函数.该函数完成的功能是推出该程序(进程),
包括了清理现场,释放资源等等,以及返回给创建这个这个进程的返回值(标志成功或失败
等信息).
fierygnu 2003-12-30
  • 打赏
  • 举报
回复
从main函数return相当于exit。
holymoon 2003-12-30
  • 打赏
  • 举报
回复
更详细的可以看看它们的实现源码.简单的说来,return 只是直接返回一个值而已,而exit还做了一些资源释放的工作(清理现场).
verymorose 2003-12-30
  • 打赏
  • 举报
回复
return 是简单的从函数返回
exit终止一个进程,同时关闭进程打开的文件,释放内存空间等
tkit 2003-12-30
  • 打赏
  • 举报
回复
补充一点,return返回的值,正好会被作为exit的参数传入kernel,可以用strace观察到
tkit 2003-12-30
  • 打赏
  • 举报
回复
exit会调用sys_exit系统调用,然后kernel会彻底释放与这个进程相关的资源,而return会返回到glibc在fork时准备的一个封装函数,后者同样会执行一个sys_exit的系统调用,作用完全一致,呵呵。
另外,exit的参数可以作为父进程wait等待得到的状态字,而作为一种父子进程地通信方式

23,120

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧