的Ubuntu 10.04 LTS(2.6.32-38-通用)的i686 - 英特爾酷睿i7 - 16GB我們可以用我們可以malloc的大小來memset相同的大小嗎?
我有一個map failed
錯誤memset
一定量的內存。你有什麼主意嗎?其他信息是我可以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,...)
尺寸越小,則返回正確的地址。我不確定這個問題是否因爲大小。
你有什麼猜測它爲什麼會發生?