0

我需要使共享内存与我的进程通信。我正在这样做:

int **matriz_result;
int segment_id;
segment_id = shmget(IPC_PRIVATE, (sizeof(int) * linhas_mat1 * colunas_mat2) , S_IRUSR | S_IWUSR);
matriz_result = (int **) shmat(segment_id, NULL, 0);

在此之后,我使用 fork 来制作更多进程。我测试过,每个进程都在写matriz_resul,但每个进程都有自己的区域。如果我打印该区域的内容,每个进程都会打印不同的内容。内存不共享。我在互联网上找到的每个示例都是这样的。有人知道我在做什么错吗?

4

1 回答 1

0

尝试这个

segment_id = mmap(NULL,(sizeof(int) * linhas_mat1 * colunas_mat2),PROT_WRITE | PROT_READ, MAP_ANONYMOUS | MAP_SHARED,-1,0 );
于 2013-05-06T01:56:54.363 回答