blp 4th edition-Chapter 11-Processes and Signals

Starting New Process

int system(const char * string);

等同于sh -c string

 


 

用exec函数族Replacing a Process Image

exec函数族replaces the current process with a new process specified by the path or file arugment.Hand off execution of your program to another

#include <unistd.h>

char ** environ;

int execl(const char *path,const char * arg0,...,(char *)0);

int execlp(const char *file,const char * arg0,...,(char *)0);

int execle(const char * path,const char * arg0,...,(char *)0,char *const envp[]);

int execv(const char *path,char *const argv[]);

int execvp(const char * file,char * const argv[]);

int execve(const char * path,char * const argv[],char * const envp[]); 系统调用

用exec函数族来执行 ps -ax命令 调用如下

另外exec函数执行的时候inherits many features from the original. In particular,open file descriptors remain open in the new process unless their "close on exec flag" has been set. Any open directory streams in the original process are closed

 


 

exec 函数是replace a process image

而fork 则是duplicate a process image

#include <sys/types.h>

#include <unistd.h>

pid_t fork(void);

#include <sys/wait.h>

pid_t wait(int * stat_loc);

pid_t waitpid(pid_t pid,int *stat_loc,int options);


#include <signal.h>

void (*signal(int sig,void (*fun)(int)))(int);

int kill(pid_t pid,int sig);

unsigned int alarm(unsigned int seconds);

int pause(void);

 

 


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值