进程(下)
来源:互联网 发布:宏程序 刀具寿命 编程 编辑:程序博客网 时间:2024/05/18 03:18
1.sys/wait.h头文件里的宏定义:
WIFEXITED(stat_val):如果子进程正常结束,则返回一个非零值。
WEXITSTATUS(stat_val):如果WIFEXITED非零,返回子进程退出码。
WIFSIGNALED(stat_val):子进程因未捕获信号而终止,返回非零值。
WTERMSIG(stat_val):如果WIFSIGNALED非零,返回信号代码。
WIFSTOPPED(stat_val):如果子进程终止,返回一个非零值。
WSTOPSIG(stat_val):如果WIFSTOPPED非零,返回一个信号代码。
2. waitpid系统调用
函数功能:用来等待某个特定进程的结束
函数原型:pid_t waitpid(pid_t pid, int *stat_col, int options)
参数:stat_col:如果不是空,会把状态信息写到它指向的位置。
options:允许改变waitpid的行为,最有用的一个是WNOHANG,是防止waitpid把调用者挂起。
返回值:成功返回子进程ID,失败返回-1;
3. 替换一个进程映像
包含的头文件:#include<unistd.h>
功能是用exec函数可以把当前进程替换为一个新进程。
函数原型:int execl(const char *path, const char *arg, ...........)
int execlp(const char *file , const char *arg,............)
int execv(const char *path, char * const argv[]);
int execvp(const char *file, char *const argv[]);
参数:path :要执行的文件的名称和路径
argv:执行时要使用的参数。
返回值:成功时反返回零,失败反回-1.
execl,execlp的参数是可变的,参数以NULL结束。
函数名字是以"p"结尾的回去查找环境变量PATH,去查找新程序的可执行文件。如果可执行文件不在PATH定义的路径上 ,就必须把包括子目录在内的绝对文件名做为一个参数传递给这些函数。
4.execlp示例:
#include<unistd.h>
#include<stdio.h>
int main()
{
printf("Running ps!");
execlp("ps", "ps", "-aux");
return 1;
}
- 进程(下)
- 进程(二)Linux下进程具体属性
- Windows进程监控工具(1)--Windows下进程获取
- Ubuntu下杀死进程(包括僵死进程)
- Linux下进程描述(1)—进程控制块
- Windows2000,xp下关闭进程(NTSD)
- 命令行下查看进程信息(wmic)
- WINCE下进程间通信(一)
- WINCE下进程间通信(二)
- DOS下进程管理(备忘)
- WINCE下进程间通信(一)
- WINCE下进程间通信(二)
- WINCE下进程间通信(一)
- WINCE下进程间通信(二)
- linux 下(Daemon)守护进程
- Linux下进程见通信(IPC)
- 实验六 进程间通信(下)
- 深入理解linux内核---进程(下)
- 《programming ruby中文版第二版》——代码块、迭代器、类和对
- 关于JS中字符串去空格的解决方法
- 体验痛苦
- 求友(C++)
- 简单的ATM自动提款设计
- 进程(下)
- Java Web基础:第十四讲 客户端验证的常用方法
- Java Web基础:第十五讲 正则表达式
- 今天
- java对文件的各种操作
- structs中文乱码处理----filter
- set statistics io / set statistics time结果解释(MSSQL)
- 国外10个ASP.Net C#下的开源CMS
- 警示之言