Visualizza la versione completa : Fuse e system call
fillo_84
02-09-2005, 18:22
Sinceramente immagino che questa sia una domanda alquanto stupida, ma non riesco a capire cosa dovrebbero fare due :confused: system call di fuse ( che immagino siano simili a quelle standard, ma non sempre xò ).
In particolar modo:
- int (*flush) (const char *, struct fuse_file_info *);
- int (*release) (const char *, struct fuse_file_info *);
insomma, dalla documentazione non riesco a capire la loro funzione, e non mi azzardo neanche a provare a tradurre in italiano quello che trovo nei manuali...... :cry:
grazie in anticipo....
Fillo :messner:
fillo_84
02-09-2005, 19:09
domanda troppo difficile? io sono su una barca che sta x affondare x colpa di sta roba..... :confused: :biifu:
Originariamente inviato da fillo_84
Sinceramente immagino che questa sia una domanda alquanto stupida, ma non riesco a capire cosa dovrebbero fare due :confused: system call di fuse ( che immagino siano simili a quelle standard, ma non sempre xò ).
In particolar modo:
- int (*flush) (const char *, struct fuse_file_info *);
- int (*release) (const char *, struct fuse_file_info *);
[...]
Mumble, non so se FUSE cambia le carte in tavola in questo senso, ma in generale, a grandi linee:
- flush serve a scaricare sul block device designato tutti i blocchi in cache, o comunque tutto il contenuto dei vari buffer
- release non ricordo precisamente, mi pare che liberi le risorse acquisite, ma dovrei riguardare...
fillo_84
05-09-2005, 16:48
Io ho capito che in teoria la flush() svuota un qualcosa....solo :bhò: che in nessuno manuale riesco a capire cosa....mi svuota il file? il buffer che mi passa?serve prima delle close quindi penso che sia il buffer che in teoria servirebbe x scrivere sul file,ma......sto diventando matto senza trovare risposta.....
x la release stessa storia purtroppo..... :oVVoVe:
:messner: oserei dire che mi sento un ignorante,..... :dottò:
Originariamente inviato da fillo_84
Io ho capito che in teoria la flush() svuota un qualcosa....solo :bhò: che in nessuno manuale riesco a capire cosa....mi svuota il file? il buffer che mi passa?serve prima delle close quindi penso che sia il buffer che in teoria servirebbe x scrivere sul file,ma......sto diventando matto senza trovare risposta.....
in generale flush() sincronizza il contenuto del disco con i dati messi in cache. Svuota tutti i buffer in pratica, o almeno cosi' ricordo.
x la release stessa storia purtroppo..... :oVVoVe:
OK, mi sono chiarito un minimo le idee. La release() viene invocata quando non ci sono piu' riferimenti ad un dato file, e quindi occorre fare pulizia. Ad una close() non corrisponde necessariamente una release() (esempio: si e' usato dup2(), fork()...), pero' per ogni open() deve esserci una release().
Pero', mi sbaglio o stai ad un livello un po' piu' basso di libfuse? Non puoi usare quest'ultima, o stai mettendo le mani nel kernel?
fillo_84
06-09-2005, 19:36
Pero', mi sbaglio o stai ad un livello un po' piu' basso di libfuse? Non puoi usare quest'ultima, o stai mettendo le mani nel kernel?
in teoria devo emulare libfuse....cioè devo praticamente gestire uno pseudo-filesystem.... :dhò:
Originariamente inviato da fillo_84
in teoria devo emulare libfuse....cioè devo praticamente gestire uno pseudo-filesystem.... :dhò:
E perche` non puoi usare il toolkit standard di fuse? (libfuse etc. etc.)