社区
Linux/Unix社区
帖子详情
讨论一下,exit()和return()之间的区别....
westar
2003-12-30 09:35:10
谁能告诉我....
...全文
70
17
打赏
收藏
讨论一下,exit()和return()之间的区别....
谁能告诉我....
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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等待得到的状态字,而作为一种父子进程地通信方式
oracle
exit
函数,USER_
EXIT
在讲解使用USER_
EXIT
之前先说明一下用户出口函数的概念:说简单一点,用户出口函数就是使用PRO*C编写的函数(以Oracle的说法是第三代语言写的),而这类函数基本上没有任何的文档,以Oracle的说法就是“undocumented”,也没有源代码可以看到,因为系统只有编译好的可执行文件。Report中使用USER_
EXIT
调用用户出口的语法:SRW.USER_
EXIT
(user_
exit
...
linux进程退出返回值判断,linux下
exit
系统调用与
return
、_
exit
分析
在Unix OS中,通过执行系统调用
exit
来终止一个进程。进程可以显示的调用
exit
系统调用来终止一个进程,也可以通过在程序结束时的
return
来实现(startup routine调用
exit
当一个C程序从main函数返回时)。调用
exit
方式如下:
exit
(status);status是返回给父进程的终止code。当一个进程
exit
后,这个进程处于zombie state。
exit
系统调用的...
python中一个函数只允许有一条
return
语句_一个函数应该只有一个
return
语句吗?
50 个答案:答案 0 :(得分:742)我经常在一个方法的开头有几个语句来返回“简单”的情况。例如,这个:public void DoStuff(Foo foo){if (foo != null){...}}...可以像这样更具可读性(恕我直言):public void DoStuff(Foo foo){if (foo == null)
return
;...}所以是的,我认为从函数/方法中获得多...
final、finally和
return
final、finally和
return
众所周知,一提到final就会想到static、一想到try…catch用法就会想到还有个finally、一想到finally就又会引出
return
与其的关系。 那么就来好好理一理这三者: 1、final与static的
区别
首先这两者都是有相同点的: ①都可以修饰类,成员变量,方法 ②都不能用于修饰构造方法 其次static可以修饰代码块,final不可以; static不可以修饰方法内的局部变量,final可以; static: static修饰表示静态或全
[c/c++]5.wait、waitpid、waitid,wait3、4
exit
和,孤儿、僵尸进程
1.函数
exit
image.png 进程有5种正常终止及3种异常终止方式。5种正常终 止方式具体如下。 (1)在main函数内执行
return
语句。如在7.3节中所述,这等效于调 用
exit
。 (2)调用
exit
函数。此函数由ISO C定义,其操作包括调用各终止 处理程序(终止处理程序在调用at
exit
函数时登记),然后关闭所有标准 I/O流等。因为ISO C并不处...
Linux/Unix社区
23,120
社区成员
74,507
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章