Domanda unix socket error 14: EFAULT (indirizzo errato)


Ho una domanda molto semplice, ma non sono riuscito a trovare alcuna risposta per tutto il weekend. Sto usando il sendto() funzione e restituisce il codice di errore 14: EFAULT. Le pagine man lo descrivono come:

"An invalid user space address was specified for an argument."

Ero convinto che si stesse parlando dell'indirizzo IP che stavo specificando, ma ora sospetto che potrebbe essere il memoria indirizzo del buffer dei messaggi a cui si riferisce - Non riesco a trovare alcun chiarimento su questo punto, qualcuno può chiarirlo?

Grazie, J


15
2018-02-13 12:59


origine


risposte:


EFAULT Succede se l'indirizzo di memoria di alcuni argomenti è passato a sendto (o più in generale a qualsiasi chiamata di sistema) non è valido. Pensalo come una sorta di SIGSEGV nel kernel land riguardante il tuo syscall. Ad esempio, se si passa un puntatore del buffer nullo o non valido (per leggere, scrivere, inviare, ricevere ...), lo si ottiene

Vedere errno (3), sendto (2) ecc ... pagine man.

EFAULT non è affatto collegato agli indirizzi IP.


24
2018-02-13 13:05