c - 为什么我不能输入 A 的值?
问题描述
我正在尝试编写一个程序,在其中使用 fork 创建 2 个子进程。第一个孩子从用户那里获得一个数字 A 并将其写入 p1 ,然后第二个孩子从用户那里获得数字 B 并将其写入 p2 ,然后父亲读取值 A 和 B 并打印它们的乘法结果。我试过这个,但它不起作用
#include <stdio.h>
#include <unistd.h>
#include <wait.h>
int main()
{
int A,B,k,p1[2],p2[2];
pipe(p1);
pipe(p2);
for(k=0;k<2;k++)
{
switch(fork())
{
case -1:
break;
case 0:
if(k==0)
{
printf("\n Enter value of A = ");
scanf("%d",&A);
close(p1[0]);
write(p1[1],&A,sizeof(int));
close(p1[1]);
break;
}
if(k==1)
{
printf("\n Enter value of B = ");
scanf("%d",&B);
close(p2[0]);
write(p2[1],&B,sizeof(int));
close(p2[1]);
break;
}
}
}
read(p1[0],&A,sizeof(int));
read(p2[0],&B,sizeof(int));
printf("\n Multipliction = %d",A*B);
close(p2[0]);
close(p1[0]);
printf("\n");
return 0;
}
解决方案
推荐阅读
- python - 如何创建一个新的 pandas 列,该列是索引范围内每个值的列表,不包括行值
- c# - 当 DataGridView 绑定到 DataTable 时,如何在编辑 DataGridView 单元格后更新对象数据?
- nlp - 查询时序序列数据中的子序列
- python - PyTorch 是否具有元素乘积和求和的隐式函数?
- python - Python Pandas GroupBy:通过从过去 10 年中减去日期来计算年龄
- cmake - 无法生成安全的链接器搜索路径 CUDA
- ios - 使用 TableView 和 UITextView 在拖动时关闭键盘不起作用
- excel - 有没有办法在 excel 中生成 100K 唯一的 8-9 个字符
- python - 给定类的实例,提取和隔离 Python 函数
- python - 按元组值分组 dict 列表