1个回答
展开全部
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
int main()
{
int fd[2];
// 创建二个 fd, fd[0] 管道用于读, fd[1] 管道用于写
pipe(fd);
// 创建进程
pid_t pid = fork();
if (pid == 0)
{
// 子进程,读取整数 n
int n;
read(fd[0], &n, sizeof(int));
// 计算 1 - n 的偶数和
int sum = 0;
for (int i = 1; i <= n; ++i)
{
if (i % 2 == 0)
{
sum += i;
}
}
printf("The sum of all even number from 1 to %d is %d\n", n, sum);
// 子进程工作完后使用 exit(0) 退出
exit(0);
}
else
{
// 父进程,写入整数 n
int n;
printf("Please input n: ");
scanf("%d", &n);
write(fd[1], &n, sizeof(int));
}
}
Linux 环境下编译及测试结果如下:
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询