gpt4 book ai didi

c - 进程共享内存不共享(c,linux)

转载 作者:行者123 更新时间:2023-11-30 17:52:00 26 4
gpt4 key购买 nike

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

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中写入,但每个进程都有自己的区域。如果我打印该区域上的内容,每个进程都会打印不同的内容。内存不共享。我在互联网上找到的每个例子都是这样的。有人知道我做错了什么吗?

最佳答案

试试这个

segment_id = mmap(NULL,(sizeof(int) * linhas_mat1 * colunas_mat2),PROT_WRITE | PROT_READ, MAP_ANONYMOUS | MAP_SHARED,-1,0 );

关于c - 进程共享内存不共享(c,linux),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16390682/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com