进程的终止 exit|学习笔记

简介: 快速学习进程的终止 exit

开发者学堂课程【物联网开发- Linux 高级程序设计全套视频进程的挂起】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/660/detail/10993


进程的终止 exit

 

内容介绍:

一· continue

二· break

三· return

四· exit

五·返回值

六·_exit

七·exit 和 _exit 函数的区别

 

接下来讲一下进程的终止,然后在linux操作系统上可以通过以下方式结束进程。

continue 、 break 、 return 、 exit 。

 

一、continue

continue 是结束本次循环进入下一次循环,它并不会跳出循环,也不会将循环结束。

 

二、break

break 会直接终止循环,直接跳出循环,然后到循环下面去执行代码。

 

三、return

return是返回函数

注意:

如果在main函数中,它是结束一个main函数所在的进程,结束了一个程序。

如果在一个子函数中的话,是它返回到被调用的地方,比如只有在main函数中的时候,return时才是结束程序;在其它函数中,return是返回到被调用的地方。

 

四、exit

exit,结束进程,无论你在这一个进程中的任何地方,只要调用exit就会终止,程序就会结束。所以说它们之间的功能是依次增强的。

 

五、返回值

exit有一个整型的返回值,可以传参,这个参数应该是进程的返回值,父进程可以拿到子进程的返回的value。

exit的返回值是void,这个参数是为了让它的父进程wait时能达到子进程的特殊状态。

接下来看它两个函数,exit和_exit

注意:

exit这个函数是结束进程的,需要包含.H。exit函数是库函数,因为它需要包含stdlib. H。

它不适合系统调用,这个函数不是内核提供的,返回一个value。

去子进程结束return一个值,父进程去wait。然后拿到子进程的返回值,那个返回值设个10000,然后它的父进程拿到的返回值是不对的,为什么呢?

因为那个返回值只能是一个字节,要是说这个value返回给父进程的参数低8位有效,比如子进程给父进程返回一个数时相当于只能低8位有效,这个value类似于return value,相当于子进程中去return,Return一个value给父进程,但exit的功能跟return的功能不同。

 

六、_exit

_exit 是一个系统调用,你看它需要包含 unistd.h。_exit 返回一个 value,返回父进程低8位有效。

 

七、exit 和 _exit 函数的区别

exit 是库函数,_exit是内核函数即系统调用。

我们在应用程序中,去调用_exit直接进入内核,在内核里终止进程,如果我们调用exit的话,它可以刷新未刷新的缓冲区,关闭未关闭的文件描述符。

然后exit再去调用_exit,到内核里去终止进程。也就是说_exit函数去调用_exit函数,在它的基础上,又做了好多其它的操作。

其实我们会学atexit注册退出清理函数,进程结束了它会执行一些函数进行清理,进行一些善后工作,就相当于立好遗嘱,然后等这个进程结束时干什么,这是exit和_exit。

注意:

都是用来结束进程的,你在进程的任何地方,只要掉这两个函数的其中一个,再求一个,进程就会结束。然后,库函数在系统调用的基础上,又做了一些其它额外的功能。

相关文章
|
Kubernetes Ubuntu Cloud Native
深入剖析Kubernetes学习笔记-05 | 白话容器基础(一):从进程说开去
深入剖析Kubernetes学习笔记-05 | 白话容器基础(一):从进程说开去
123 0
|
消息中间件 Shell Linux
计算机操作系统学习笔记(7)——进程通信
计算机操作系统学习笔记(7)——进程通信
80 0
|
4月前
|
Linux 调度
Linux学习笔记十一:进程管理
Linux学习笔记十一:进程管理
|
11月前
|
存储 安全 Linux
Go语言学习笔记-进程和线程
Go语言学习笔记-进程和线程
50 0
Go语言学习笔记-进程和线程
|
Linux
计算机操作系统学习笔记(6)——进程和线程
计算机操作系统学习笔记(6)——进程和线程
68 0
|
存储 算法 程序员
[计算机操作系统(慕课版)]第二章 进程的描述与控制(学习笔记)
[计算机操作系统(慕课版)]第二章 进程的描述与控制(学习笔记)
|
安全 Java
Java复习与学习笔记----进程和线程与同步(下)
Java复习与学习笔记----进程和线程与同步(下)
|
Java 调度
Java复习与学习笔记----进程和线程与同步(上)
Java复习与学习笔记----进程和线程与同步
|
Linux
Linux学习笔记(六) 进程管理
Linux学习笔记(六) 进程管理
82 0
|
安全 算法 调度
411操作系统学习笔记——进程与线程、处理机调度、同步与互斥(PV操作)、死锁(四)
411操作系统学习笔记——进程与线程、处理机调度、同步与互斥(PV操作)、死锁
160 1
411操作系统学习笔记——进程与线程、处理机调度、同步与互斥(PV操作)、死锁(四)

相关实验场景

更多