进程替换
这个部分我们讲进程替换,主要讲函数的使用和进程替换的使用
进程替换非常好使,我们进程替换甚至可以在C++语言里调用Python语言或者其他语言的进程👍.
我们讲完这部分的函数就可以创建一个简易的shell了。
函数介绍
我们先来看看函数都有哪些
#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[]);
int execvpe(const char *file, char *const argv[],char *const envp[]);
execl
我们先介绍最简单的execl函数。来见见他是如何使用的。
#include<stdio.h>
#include<sys/wait.h>
#include<sys/types.h>
#include<unistd.h>
int main()
{
int id = fork();
if(id ==0)
{
//sl是在屏幕上生成一个移动的小火车.我们用它演示可以更好的看效果.(有的linux中可能没有)
printf("我是子进程我将要被sl替换,我的pid为%d 我的ppid是%d\n",getpid(),getppid());
// 进程地址 命令 以NULL结尾
execl("/bin/sl","sl",NULL)