gpt4 book ai didi

c - 尝试初始化内存映射文件时发生段冲突

转载 作者:太空宇宙 更新时间:2023-11-04 03:08:43 25 4
gpt4 key购买 nike

以下是我用来创建内存映射文件的代码:

fid = open(filename, O_CREAT | O_RDWR, 0660);

if ( 0 > fid )
{
throw error;
}

/* mapped offset pointer to data file */
offset_table_p = (ubyte_2 *) shmat(fid, 0, SHM_MAP);

/* Initialize table */
memset(offset_table_p, 0x00, (table_size + 1) * 2);

假设 table_size 大约是 2XXXXXXXX 字节。

在调试期间,我注意到它在尝试初始化“偏移表指针”时失败了,

任何人都可以向我提供一些关于为什么它在 intilalization 期间失败的意见吗?是否有可能我的内存映射文件未按所需的表大小创建?

最佳答案

据我阅读文档可以看出,你做的完全错了。

要么使用 open() 和 mmap(),要么使用 shmget() 和 shmat()。

如果您使用 open(),您首先需要使文件足够长。为此使用 ftruncate()。

关于c - 尝试初始化内存映射文件时发生段冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/252149/

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