Sto lavorando a un progetto Linux e ho problemi a lavorare con i descrittori di file.Modifica permessi di lettura/scrittura su un descrittore di file
Ho un descrittore di file orfani (il file è stato aperto() 'd quindi scollega()' d ma il file fd è ancora valido) che dispone dell'autorizzazione di sola scrittura. Il file di supporto originale aveva permessi completi (creati con S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH), ma purtroppo il file è stato aperto con O_WRONLY. È possibile duplicare il descrittore di file e cambiare la copia in O_RDWR?
psudo-code:
//open orphan file
int fd = open(fname, O_WRONLY, ...)
unlink(fname)
//fd is still good, but I can't read from it
//...
//I want to be able to read from orphan file
int fd2 = dup(fd)
//----change fd2 to read/write???----
Grazie in anticipo! -Andrew
'fcntl (fd, F_SETFL, fcntl (fd, F_GETFL) | O_RDWR))' * sembra * come se fosse la cosa, ad eccezione della pagina man specifica che non funzionerà. Immagino ci sia qualche ragione per cui il kernel "ha bisogno" di questo per essere impossibile? – aschepler
quindi perché lo apri in modalità wronly se prevedi di leggerlo? –
Oppure semplicemente riaprilo usando i flag corretti. – jweyrich