PDA

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:

Ikitt
02-09-2005, 19:29
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:

Ikitt
05-09-2005, 17:19
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:

Ikitt
06-09-2005, 19:38
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.)

Loading