Qualcuno sa qual è la differenza tra mmap(2)
e mmap(3)
? La sezione uomo 3 è descritta come "Questo capitolo descrive tutte le funzioni della libreria escluse le funzioni di libreria descritte nel capitolo 2, che implementano le chiamate di sistema." mmap(3)
non esegue una chiamata di sistema?mmap (2) vs mmap (3)
Leggendo le due pagine man, vedo che mmap(2)
sembra accettare una gamma molto più ampia di flag rispetto a mmap(3)
e afferma di essere in grado di mappare gli spazi di I/O del dispositivo. mmap(3)
afferma di essere in grado di mappare "oggetti di memoria condivisa" e "oggetti di memoria digitati" in aggiunta ai file, ma non menziona l'I/O del dispositivo.
Poiché le due funzioni hanno lo stesso nome, non sono nemmeno sicuro di come scegliere l'una piuttosto che l'altra.
Grazie, è stato molto chiaro. Grazie anche per il puntatore nell'albero dei sorgenti della libreria C. Sebbene eseguo una discreta quantità di lavoro a livello di kernel e di driver, raramente riesco a trovare spazio utente per qualcosa di diverso dalle utilità di test, e non ho affatto esaminato la sorgente di glibc. Vedo che mi è mancato un approccio molto utile a una serie di problemi. – EQvan