우분투 10.04 LTS (2.6.32-38 제네릭)는 i686 - 인텔 I7 - malloc 할 수있는 크기로 동일한 크기를 memset 할 수 있습니까?
16기가바이트
나는 메모리의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
경우, 그것은 바로 주소를 반환합니다. 이 문제가 크기 때문인지 확실하지 않습니다.
왜 그런 일이 일어 났는지 추측 할 수 있습니까?