3
我试图从子进程发送到父进程的二维数组,并失败可怕。不完全确定这应该如何做,但这是我的尝试。通过管道从子进程发送到父母的多维数组
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdlib.h>
int fd[2];
int matrix[2][2];
int main() {
pipe (fd);
if (0 == fork()) {
printf ("Start child process with pid: %d\n", getpid());
for (int i = 0; i < 2; i++)
matrix[i][i] = 1;
write (fd[1], matrix, 4);
exit (0);
}
printf ("Start parent process with pid: %d\n", getpid());
read (fd[0], matrix, 4);
printf ("Received %d\n", matrix[1][1]);
return 0;
}
编译正确,但接收到的值总是0而不是1 我在做什么错? (很多东西,我预计)
是的,这奏效了,我可以看到为什么。谢谢 ! – 2013-04-21 17:19:36