友链
#include <unistd.h>
#include <fcntl.h>
#include <stdio.h>
#include <sys/types.h>
#include <string.h>
int main(int argc, char *argv[])
{
// execlp函数
// int execlp(const char *file, const char *arg, ...
// /* (char *) NULL */);
// 该函数和execl不同的地方就在于,该函数会从环境变量中查找可执行文件
// 而execl需要指定绝对路径
// pathname: 要执行的文件的路径(推荐使用绝对路径)
// 第二个参数是一个字符串,是第一个参数中指定的可执行文件的参数(可以是多个参数)
// 第一个参数是程序名称(没啥用)
// 第二个开始才是程序的参数
// 最后一个参数需要null结束(用于告知execl参数列表的结束——哨兵)
if (fork() > 0)
{
printf("I'm parent process: pid: %d\n", getpid());
sleep(1);
}
else
{
// 当前是子进程
// execl("/mnt/c/Users/x/Pictures/code/lesson14/2", "2", NULL);
execlp("ps", "ps", "a", "u", "x", NULL);
printf("I'm child process: %d", getpid());
}
for (int i = 0; i < 3; i++)
{
printf("i=%d, pid: %d\n", i, getpid());
}
}