のUbuntu 10.04 LTS(2.6.32-38-ジェネリック)のi686 - インテルi7の - 16ギガバイトmallocできるサイズで同じサイズをmemsetできますか?
私は、メモリの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(0, 100,...)
ように上記しようとしたサイズより小さいI mmap
場合、それは右のアドレスを返します。この問題がサイズのせいかどうか分かりません。
なぜ起こったのでしょうか?