相关疑难解决方法(0)

如何在C中将结构存储和检索到共享存储区中

对于单一赋值,我需要创建一个最多10个文件名的循环列表,然后将它们存储在共享内存区域中,这样2个子进程就可以读/写列表(使用信号量来控制访问).麻烦的是,我是一个全新的C新手,我感到失落和绝望,因为它完全超出了我的深度.我需要一些帮助来填补我的知识.

现在,我只是一次只关注它一个问题,而目前,我只是试图将我的循环列表放入共享内存区域.

到目前为止,我有:

typedef struct FILE
{
   struct FILE *f_link;  /* forward link for linked list */
   char name[255];       /* name of the file */

} FILE_entry;
Run Code Online (Sandbox Code Playgroud)

作为我的结构,它将保存对下一个文件的引用(f_link).这样我就可以调用 - > f_link来获取列表中的下一个项目,并且第10个元素的f_link将直接返回到第1个.我这样做的原因是我可以在没有迭代器的情况下简单地遍历列表(并且不必像使用数组那样检查列表的结尾).

我也知道我需要用来shmget获取内存区域,我理解它,我传递shmget一个键,一个大小和一个标志(我没有得到),它返回一个int类型的标识符.

所以我的问题是2折.如何将链接列表存储到共享内存区域 - 如何从共享内存区域访问它?

c unix shared-memory

6
推荐指数
1
解决办法
2万
查看次数

标签 统计

c ×1

shared-memory ×1

unix ×1