1.编写程序,在程序中创建一个子进程,使父子进程分别打印不同的内容

#include<stdlib.h>
#include<sys/wait.h>
#include<unistd.h>
int main(){
pid_t pid;
pid=fork();
if(pid<0)
{
printf("error");
}
if(pid==0)
{
printf("child process pid=%d,ppid=%d",getpid(),getppid());
}
if(pid>0)
{
printf("parent process pid=%d,ppid=%d",getpid(),getppid());
}
}
2.编写程序,在程序中创建一个子进程,是子进程通过exec更改代码段,执行cat命令
【解析】代码里面的arg是cat执行的命令 比如cat main.c cat

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main()
{
pid_t pid;
pid = fork();
if (pid == -1)
{
perror("fork error");
exit(1);
}
else if (pid > 0)
{
printf("parent process:pid=%d\n", getpid());
}
else if (pid == 0)
{
printf("child process:pid=%d\n", getpid());
char *arg[] = {"main.c", NULL };
execvp("cat", arg);
perror("error exec\n");
printf("child process:pid=%d\n", getpid());
}
return 0;
}
该博客介绍了如何在C语言中创建子进程。第一个示例展示了父子进程如何分别打印不同的内容,通过fork()函数实现。第二个示例中,子进程使用execvp()函数替换自身代码执行cat命令,读取并打印文件内容。

被折叠的 条评论
为什么被折叠?



