【发布时间】:2012-03-05 02:32:10
【问题描述】:
ubuntu 10.04 LTS(2.6.32-38-generic) i686 - 英特尔 i7 - 16GB
memset 一定数量的内存出现map failed 错误。你有什么主意吗?附加信息是我可以malloc 相同大小。这是我的代码。
//Here I could malloc successfully
pdev->frame_buffer = (uint16_t *)malloc(3840000);
//Then, I got map_failed error here and message from compiler is "Invalid argument"
if((pdev->frame_buffer = (uint16_t *)mmap(0, 3840000, PROT_READ | PROT_WRITE, MAP_SHARED, fb, 0)) == MAP_FAILED){
perror("Error: cannot mmap frame buffer");
exit(1);
}
如果我mmap 小于我上面尝试的大小,如mmap(0, 100,...),那么它会返回正确的地址。我不确定这个问题是不是因为尺寸。
你猜到为什么会这样吗?
【问题讨论】:
标签: linux memory-management ubuntu malloc memset