return 和 exit 的区别

exit()          表示结束当前进程或当前程序,在整个程序中,只要有

exit,就退出,并将应用程序的一个状态返回给OS。一般

和操作系统相关的是0为正常退出,非0为非正常退出。

return:     表示调用堆栈的返回。例如当程序进入函数调用时,当函数

调用结束,则return,返回上一层的调用。如果是在main函数

中,return则是结束当前进程。

main函数的结束也会隐式的调用exit函数。

return 和 exit 的区别,布布扣,bubuko.com

时间: 2024-08-01 06:29:22

return 和 exit 的区别的相关文章

return和exit的区别

#include<stdio.h> #include<sys/types.h> #include<sys/wait.h> #include<unistd.h> #include<signal.h> int main( void ) { daemon_init(); fprintf(stderr, "main进程[%d]\n", getpid() ); while( 1 ) { } exit(0); } int daemon_i

循环结构中break、continue、return和exit的区别

1.break语句 break语句使用场合主要是switch语句和循环结构.break语句,那么直接退出循环,执行循环结构下面的第一条语句.如果在多重嵌套循环中使用break语句,当执行break语句时,退出的是它所在的循环结构,对外层循环没有影响. 2.continue语句 continue语句并没有真的退出循环,而是只结束本次循环的执行,所以使用continue时要注意这一点. 3.return语句 如果在程序中遇到return语句,那么戴拿就退出该函数的执行,退回到函数的调用处,如果是ma

break,continue,return和exit的区别

1.break break语句的使用场合主要是switch语句和循环结构. 在循环结构中使用break语句,就退出循环,接着执行循环结构下面的第一条语句. 如果在多重嵌套循环中使用break语句,当执行break语句的时候,退出的是它所在的循环结构,对外层循环没有任何影响. 如果循环结构里有switch语句,并且在switch语句中使用了break语句,当执行switch语句中的break语句时,仅退出switch语句,不会退出外面的循环结构. 2.continue continue语句结束循环

Linux中进程正常退出return和exit()的区别

exit是一个函数,有参数.void exit(int status) .exit执行完后把控制权交给系统. return是函数执行完后的返回.return执行完后把控制权交给调用函数. return()是当前函数返回.如果是在主函数main, 自然也就结束当前进程了,如果不是,那就是退回上一层调用.在多个进程时.如果有时要检测上进程是否正常退出的.就要用到上个进程的返回值,依次类推. return是语言级别的,它表示了调用堆栈的返回:而exit是系统调用级别的,它表示一个进程的结束. 在mai

fork与vfork区别及用exit于return返回时的区别

fork()与vfork()区别: 1.fork()父子进程的执行次序不确定,它们的调度顺序由调度器说了算.而vfork()保证子程序先运行,在调用exit或者exec前父子进程数据共享,在子进程调用exit或exec退出后父进程才能被调度运行. 2.fork()子进程会拷贝父进程的数据段,而vfork()父子进程共享数据段. return与exit返回时的区别: 首先结束子进程的调用需要用exit(),因没有修改函数栈,若在vfork中return,那就意味在main函数中return,这是因

Windows下return,exit和ExitProcess的区别和分析

通常,我们为了使自己的程序结束,会在主函数中使用return或调用exit().在windows下还有ExitProcess()和TerminateProcess()等函数. 本文的目的是比较以上几种结束程序的方式的区别,并分析其原理. 首先我们用一个例子来说明几种结束方式的区别. 测试代码如下:#include#include#include class Test{public: Test (int i) {m_i=i; printf ("construct %d\n", m_i);

return和exit函数的区别

在上Linux课的时候,老师提到一句,调用vfork产生的子进程就是为了使用exec族函数来执行其他的代码逻辑. 在子进程退出的时候有两种方式,exit和exec族函数,不能使用return,为什么不能用return呢,为什么只有vfork会不让用return呢? 于是我就写了这样的代码 1 #include<stdio.h> 2 #include<unistd.h> 3 #include<stdlib.h> 4 5 6 int main() 7 { 8 pid_t p

fork和vfork,return和exit的理解

fork和vfork的差别: 1.fork是创建一个子进程,并把父进程的内存数据copy到子进程中. vfork是创建一个子进程,并和父进程的内存数据share一起. 2.vfork是这样的工作的: (1).保证子进程先执行. (2).当子进程调用exit()或exec()后,父进程往下执行. 3.fork后来采用的优化技术,这样,对于fork后并不是马上拷贝内存,而是只有你在需要改变的时候,才会从父进程中拷贝到子进程中,这样fork后立马执行exec的成本就非常小了.而vfork因为共享内存所

java中,return和return null有什么区别吗?

java中,return和return null有什么区别吗? 最大的区别:return;方法的返回值必须是void!return null;方法的返回值必须不是 原始数据类型(封装类除过)和void! return 就是跳出方法...return null也是跳出方法并返回null.. 也就是说return null必须用在返回值不是void的方法里面..return可以用在任何方法里面 不要认为null就是没有值..null就是值..真正的没有值是..比如你String s;这个时候s是没有