PDA

Visualizza la versione completa : [C++] Errore "mmap: permission denied"


daniele_dll
16-11-2005, 19:03
holaz

ho un problemino ...

sto scrivendo un software di acqusizione video su linux e sto usando dei buffer per acquisire i dati dalla scheda d'acquisizione video alla memoria

il codice questo



if (ioctl(video_fd, VIDIOC_QUERYBUF, &buffer) == -1)
{
perror("VIDIOC_QUERYBUF");
exit(EXIT_FAILURE);
}

buffers[i].length = buffer.length;

printf("%2i: %i/%li\n", i, buffer.length, sz);

buffers[i].start = mmap(NULL, buffer.length, PROT_READ | PROT_WRITE, MAP_SHARED, video_fd, sz);

if (buffers[i].start == MAP_FAILED)
{
perror("mmap");
exit(EXIT_FAILURE);
}


l'errore che mi restituisce perror
mmap: Permission denied (ci sta l'mmap davanti per via di perror)

ovvero errno impostato su 13

i parametri buffer.length e sz corrispondono rispettivamente a 233472 e 4096

video_fd il File Descriptor del device e funziona perfettamente perch eseguo tutto le operazioni senza problemi

ora non so proprio cosa possa essere :bh: :bh:

daniele_dll
16-11-2005, 19:55
problema risolto

per chi fosse interessato ... il problema era dovuto all'open che usavo con il flag per la sola lettura invece era necessario aprire in lettura/scrittura

:fagiano: :fagiano:

Loading