二、进程控制

进程的建立

进程:进程是正在执行的程序,包括程序代码和数据其中数据包含程序变量数据、外部数据和程序堆栈等。
进程建立:

#include <unistd.h> //Linux系统库

pid_t fork(void);  //建立进程的声明
/*
如果fork()调用成功,就会使内核建立一个与其创建者一样的程序。
它返回一个pid_t 类型的值pid。pid 被用来区分父进程和子进程。在父进程中,pid 被置为一个非0 的正整数;在子进程中,pid 被置为0。
*/

进程的运行

exec 系列中的系统调用都完成相同的功能,它们把一个新程序装入调用进程的内存空间,来改变调用进程的执行代码,从而形成新进程。如果exec 调用成功,调用进程将被覆盖,然后从新程序的入口开始执行。这样就产生了一个新的进程,但是它的进程标识符与调用进程相同。

#include<unistd.h>

int execl( const char *path, const char *arg, ...);
int execlp( const char *file, const char *arg, ...);
int execle( const char *path, const char *arg , ..., char* const envp[]);
int execv( const char *path, char *const argv[]);
int execvp( const char *file, char *const argv[]);

/*
path参数指明运行文件的有效路径名
file参数只包含文件名,会在PATH环境变量中搜索路径
arg是运行的文件包含的参数注意需要以一个NULL指针来标识参数表的结尾
ex:execl(“/bin/ls”,”ls”,”-l”,NULL);
execv("/bin/ls",argv);
*/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值