değerini döndürür Çalıştırmak için mmap işlevini alamıyorum. EINVAL hata kodunu döndürür.mmap(), EINVAL
void* mapped =
mmap((void*)(map_addr + slide),
map_size,
PROT_WRITE | PROT_READ,
MAP_PRIVATE | MAP_ANON,
bprm->file,
map_offset);
benim platformu (Darwin) bu işlevin belgelerine kontrol ettim ve yanlış bir şey olacaksa görünmüyor. Mmap için man sayfası, EINVAL'in iade edileceği dört vaka sunar. Bu değil bu yüzden
[EINVAL] MAP_FIXED was specified and the addr argument was not page
aligned, or part of the desired address space resides out of the
valid address space for a user process.
MAP_FIXED belirtilmemiştir. MAP_PRIVATE var: MAP_PRIVATE, MAP_PRIVATE (MAP_PRIVATE) var. Görüşme sırasında
[EINVAL] The len argument was negative.
len (map_size) argüman 8192.
[EINVAL] The offset argument was not page-aligned based on the page size as
returned by getpagesize(3).
ofset argüman (map_offset) 0 yüzden sayfa hizalanmış olmalıdır olmasıdır. (belki yanılıyor muyum?)
MAP_ANON ile bazı uygulamalar fd'nin -1 olmasını gerektirir. Kontrol edilmeye değer olabilir. –
** @ Simon Elliott ** Evet, haklısınız. Teşekkür ederim. –