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

exit是一个函数,有参数。void exit(int status) 。exit执行完后把控制权交给系统。

return是函数执行完后的返回。return执行完后把控制权交给调用函数。 return()是当前函数返回。如果是在主函数main, 自然也就结束当前进程了,如果不是,那就是退回上一层调用。在多个进程时.如果有时要检测上进程是否正常退出的.就要用到上个进程的返回值,依次类推。

return是语言级别的,它表示了调用堆栈的返回;而exit是系统调用级别的,它表示一个进程的结束。

在main函数里,return(0)和exit(0)是一样的,子函数用return返回,而子进程用exit退出,调用exit时要调用一段终止处理程序,然后关闭所有I/O流。

时间: 2024-10-08 20:27:12

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

return 和 exit 的区别

exit()          表示结束当前进程或当前程序,在整个程序中,只要有 exit,就退出,并将应用程序的一个状态返回给OS.一般 和操作系统相关的是0为正常退出,非0为非正常退出. return:     表示调用堆栈的返回.例如当程序进入函数调用时,当函数 调用结束,则return,返回上一层的调用.如果是在main函数 中,return则是结束当前进程. main函数的结束也会隐式的调用exit函数. return 和 exit 的区别,布布扣,bubuko.com

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

Linux中tty、pty、pts的概念区别

基本概念: 1> tty(终端设备的统称): tty一词源于Teletypes,或者teletypewriters,原来指的是电传打字机,是通过串行线用打印机键盘通过阅读和发送信息的东西,后来这东西被键盘与显示器取代,所以现在叫终端比较合适. 终端是一种字符型设备,它有多种类型,通常使用tty来简称各种类型的终端设备. 2> pty(虚拟终端): 但是如果我们远程telnet到主机或使用xterm时不也需要一个终端交互么?是的,这就是虚拟终端pty(pseudo-tty) 3> pts/

python中生成器对象和return 还有循环的区别

python中生成器对象和return 还有循环的区别 在python中存在这么一个关键字yield,这个关键字在项目中经常被用到,比如我写一个函数不想它只返回一次就结束那我们就不能用return,因为return后面就不能跟任何东西,意味着函数的结束.那么我们完全可以这么做: def main(): for i in range(1,100): yield i 这样就等于生成了一个循环返回对象,特别在爬虫scrapy中较为常见!yeild和return还有for 上本质有什么区别呢?其实很简单

Linux中进程控制块PCB-------task_struct结构体结构

Linux中task_struct用来控制管理进程,结构如下: struct task_struct { //说明了该进程是否可以执行,还是可中断等信息    volatile long state;   //Flage 是进程号,在调用fork()时给出 unsigned long flags;   //进程上是否有待处理的信号 int sigpending;    //进程地址空间,区分内核进程与普通进程在内存存放的位置不同 mm_segment_t addr_limit; //0-0xBF

Linux中进程的优先级

Linux採用两种不同的优先级范围,一种是nice值.还有一种是实时优先级. 1.nice值 nice值得范围是-20~19,默认值是0. 越大的nice值意味着更低的优先级.也就是说nice值为-20的优先级最高. 2.实时优先级 实时优先级的范围是0~99.其值得意义与nice值相反.即:越高的实时优先级数值意味着进程优先级越高. Linux的进程可分为普通进程和实时进程.实时进程都是一些对响应时间要求比較高的进程.因此实时进程的优先级比普通进程的优先级要高. 3.优先级比較 Linux中的

linux中进程和计划任务的管理

前言: 在linux中,为了更好的了解和使服务器有序运行,管理员需要对进程和计划任务做相应的操作,以便能够更好的完成维护任务. 这里我们做一些简单的练习. 一.管理系统中的进程. (1)启动系统中的portmap服务,然后使用kill命令终止它的运行. Kill  进程的PID号 (2)查找系统中CPU占用率超过80%的进程,并强行终止该进程. 系统中一般是没有CPU超过80%的进程,可以从http://www.cpuburnin.com/downloads/cpuburn-in.tar.gz网

Linux中进程的管理

1.什么时进程?程序放置在存储媒体中(如硬盘,光盘,软盘,磁带等),为实体文件的型态存在进程:程序被触发后,执行者的权限与属性,程序的程序码与所需数据等都会被载入内存中,操作系统并给与这个内存内的单元一个识别码(pid),可以说,进程就是一个正在运行的程序.2.进程的状态R(Running):正在运行S(Sleep):程序最小化状态目前正在睡眠状态,但可唤醒(signal)D:不可被唤醒的睡眠状态,通常进程可能在等待I/O情况.T:停止状态(stop),可能是在工作控制(背景暂停)或除错(tra

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

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