ubuntu 10.04 LTS(2.6.32-38-generic) i686 - インテル i7 - 16GB
一定量のメモリに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,...)
アドレスが返されます。この問題がサイズによるものかどうかはわかりません。
なぜそれが起こったのか推測できますか?