进程基础的一些相关函数
来源:互联网 发布:vr视频软件 编辑:程序博客网 时间:2024/04/30 14:18
ret = fork() 和 ret = vfork()的区别:
fork() 这个函数分出的进程,父进程和子进程是随机运行的。
vfork() 这个函数分出的进程,一定是子进程先执行完后,再执行父进程。
pid = wait(&status);这个函数是父进程在等待子进程的死亡,并将状态赋值给status.
WIFEXITED(status) 这个数为正,则子进程为正常死亡
WIFSIGNALED(status) 这个数为正,则子进程为不正常死亡。
pid = waitpid(ret, &status, 0) //阻塞等待pid值为ret的子进程退出。
while((pid = waitpid(ret, &status, WNOHANG)) == 0)
{
//干自己想做的事,等到子进程一死亡就马上跳出循环。
}
函数名: exit() 头文件 <stdio.h>
函数的使用形式为”void exit(int status)”,参数status为退出进程时的状态,父进程将获得该状态值。
所在头文件:stdlib.h(如果是”VC6.0“的话头文件为:windows.h)
功 能: 关闭所有文件,终止正在执行的进程。
exit(1)表示异常退出.这个1是返回给操作系统的。
exit(x)(x不为0)都表示异常退出
exit(0)表示正常退出
exit()的参数会被传递给一些操作系统,包括UNIX,Linux,和MS DOS,以供其他程序使用。
2._exit函数
使用_exit函数,须包含“unistd.h”头文件,函数形式为”void _exit(int status)”,参数status为退出时的状态,父进程将获得该状态值。C语言标准指定了EXIT_SUCCESS和EXIT_FAILURE作为程序正常结束和异常终止的两个宏。_exit函数将立即结束调用它的进程,与进程相关的任何打开的文件描述符都将关闭,进程的子进程都将变为init进程(pid=1)的子进程。使用_exit函数退出程序时,不会执行atexit中注册的处理函数。
exit()和_exit()最大的区别是:exit()会先清理缓存,再退出进程。而_exit()则什么都不管直接退出, 不管缓存会怎么样,也不输出缓存的内容。
3. atexit() /*向系统注册exit()执行时的退出处理函数*/
因为这些处理函数是存放在栈里的,所以exit退出执行时 是先注册后执行的。而且_exit()退出时是不执行这些函数的,
fork() 这个函数分出的进程,父进程和子进程是随机运行的。
vfork() 这个函数分出的进程,一定是子进程先执行完后,再执行父进程。
pid = wait(&status);这个函数是父进程在等待子进程的死亡,并将状态赋值给status.
WIFEXITED(status) 这个数为正,则子进程为正常死亡
WIFSIGNALED(status) 这个数为正,则子进程为不正常死亡。
pid = waitpid(ret, &status, 0) //阻塞等待pid值为ret的子进程退出。
while((pid = waitpid(ret, &status, WNOHANG)) == 0)
{
//干自己想做的事,等到子进程一死亡就马上跳出循环。
}
函数名: exit() 头文件 <stdio.h>
函数的使用形式为”void exit(int status)”,参数status为退出进程时的状态,父进程将获得该状态值。
所在头文件:stdlib.h(如果是”VC6.0“的话头文件为:windows.h)
功 能: 关闭所有文件,终止正在执行的进程。
exit(1)表示异常退出.这个1是返回给操作系统的。
exit(x)(x不为0)都表示异常退出
exit(0)表示正常退出
exit()的参数会被传递给一些操作系统,包括UNIX,Linux,和MS DOS,以供其他程序使用。
2._exit函数
使用_exit函数,须包含“unistd.h”头文件,函数形式为”void _exit(int status)”,参数status为退出时的状态,父进程将获得该状态值。C语言标准指定了EXIT_SUCCESS和EXIT_FAILURE作为程序正常结束和异常终止的两个宏。_exit函数将立即结束调用它的进程,与进程相关的任何打开的文件描述符都将关闭,进程的子进程都将变为init进程(pid=1)的子进程。使用_exit函数退出程序时,不会执行atexit中注册的处理函数。
exit()和_exit()最大的区别是:exit()会先清理缓存,再退出进程。而_exit()则什么都不管直接退出, 不管缓存会怎么样,也不输出缓存的内容。
3. atexit() /*向系统注册exit()执行时的退出处理函数*/
因为这些处理函数是存放在栈里的,所以exit退出执行时 是先注册后执行的。而且_exit()退出时是不执行这些函数的,
1 0
- 进程基础的一些相关函数
- 进程的相关函数
- php基础3------一些与数组相关的函数
- 进程的相关函数使用
- 进程的相关函数使用
- opencv相关的一些函数
- 一些JSON相关的函数
- 一些JSON相关的函数
- 补充一些linux进程相关的东西
- Idle进程相关的一些东西
- Idle进程相关的一些东西
- Linux 进程相关的一些命令
- Linux基础学习系列:对于fork()函数的学习,及进程创建相关知识
- 与进程的环境变量相关的函数
- 一些基础函数的笔记
- 汇总一些网络相关的基础概念
- Android Binder相关的一些基础知识点.
- 进程控制操作相关的函数
- GIS+=地理信息+云计算技术——私有云架构设计(5)云安全规划
- 数据结构(3)--线性表实现一元多项式加法
- java反射---高级开发必须要懂的入门知识
- enum在C语言中的使用
- [BZOJ 2194] 快速傅立叶之二 · FFT
- 进程基础的一些相关函数
- ”google play 服务”(Google play services) 如何安装
- jQuery对radio,checkbox,select元素的操作
- execl家族函数总结
- 嵌入式linux文件系统相关
- ubuntu14.04安装caffe+digits
- 【Android开发小记--8】传感器 以及 指南针的实现
- 计算机网络6--多路复用技术
- BO SDK - 列出所有 web intelligence 报表用到的 universe object