Newsgroup: it.comp.programmare.win32
Titolo: Files e clusters

Dove posso trovare una documentazione sulla struttura interna dei
clusters per FAT16 e FAT32 che mi spieghi in particolare il meccanismo
col quale i vari cluster sono collegati per tenere traccia di un file?
Ho trovato l' "Hardware white paper" della Microsoft in formato .pdf ma
probabilmente ho solo le prime pagine e mi mancano delle informazioni.
Grazie.

 col quale i vari cluster sono collegati per tenere traccia di un file?
microsoft.public.win32.programmer.kernel

Efran Cobisi wrote:

Non funziona questo indirizzo.

col quale i vari cluster sono collegati per tenere traccia di un file?
informazioni sul file system le puoi trovare nei siti che trattano lo
sviluppo di sistemi operativi...
comunque se vai su 
altavista.com
 e cerchi FAT16 dovresti
trovare qualche info sulla struttura... che é molto sempliec
sia per FAT12, FAT16, FAT32
x ulteriori info contattami in pvt
ciao
cod

 di un file?
E` piuttosto semplice: c'e` una corrispondenza 1:1 fra gli elementi della
FAT (che a seconda del tipo sono numeri a 12, 16 o 32 bit) e i cluster. Il
cluster 1 e` associato all'elemento 1 della FAT, e cosi` via. Il descrittore
del file contiene il numero del primo cluster che contiene il file, poi da
li` si va avanti come per le liste concatenate; se nel descrittore risulta
che il primo cluster e` M, tu vai a vedere l'elemento M della FAT, che
conterra` l'indice del prossimo cluster; e cosi` via, fino a che non si
trova un codice speciale (che non ricordo) che indica la fine del file.
---
Bye! Lorenzo Lutti
http://antani.virtualave.net/

Bella spiegazione ma penso che a lui serva come fare ad implementarla in un
codice C e veramente sarei anch'io un po' interessato! :-P
"Lorenzo Lutti" <lorenz...@DOHtiscalinet.it> ha scritto nel messaggio
news:8%uR6.34$ZZ....@news.infostrada.it...


Non funziona questo indirizzo.
Specifico che trattasi di uno degli innumerevoli ng microsoft su cui
non scrive praticamente nessuno ... :)

col quale i vari cluster sono collegati per tenere traccia di un file?
http://www.teleport.com/~brainy/fat16.htm
http://www.teleport.com/~brainy/fat32.htm
HTH

Nonostante il vostro aiuto non ho ancora trovato quello che mi occorre,
ovvero lo schema con quale interpretare i bytes di un settore che contiente
una porzione di dati di un determinato file. Immagino che vi sarà un certo
numero di bytes che indicheranno il settore successivo nel quale andare a
leggere la rimanente porzione di dati del file, e altri bytes di
informazione. Ma come diavolo saranno disposti nessuno lo sà?



E' un pò difficile spiegare la FAT (12, 16, 32) comunque... cerco di
spiegarmi nel modo + semplice che si possa:
Premesso che tu sappia dove inizia la FAT,
premesso che tu sappia come é costituita una voce nel F.S.
premesso che tu sappia quanti settori creano un cluster
premesso che tu sappia dove é posizionato il 1. cluster
dato atto ...
acquisisci una data voce dalla tabella dei file
leggi il campo che identifica la voce del cluster
ti sposti sulla relativa voce che riguarda quel cluster
1. CLUSTER 1080
FAT32 contiene 128 voci per ogni settore, quindi 
il settore che conterrà la voce relativa al 1080 cluster
é dato da:
punto1:
1080 / 128 = 8 - Leggi l'ottavo settore della FAT
128 * 8 = 1024
il 1080 cluster é rappresentato dalla 56° voce dentro il settore
ti posizioni su questa voce. ora bisogna interpretare il contenuto
di tale voce.....
potrà essere marcato come DANNEGGIATO, LIBERO, FINE FILE...
questo lo trovi nelle doc che ti hanno dato sul f.s. 32, ora io non ho
a portata di mano i codici quindi non ricordo i valori.
ti posizioni sul primo cluster del disco fisso
e fai la seguente operazione:
cluster_richiesto (1080) * n_settori_x_cluster +
settore_assoluto_del_1_cluster = settore_assoluto_da_leggere
leggi i relativi settori e li carichi in memoria, hai ottenuto il
primo frammento....
ritorni alla FAT, la voce 1080 contiene il numero 1081 ...
ripeti la procedura dal punto1 con il nuovo cluster che ti interessa
se invece contiene il simbolo FINEFILE salti al punto2:
punto2:
leggi la differenza di byte data dalla dimensione del file
indicata nell'elenco dei file...
per esempio il file era lungo 65300byte
sei sull'ultimo cluster quindi....
65300 MOD 2048 (ipotizzando che ogni cluster allochi 2k di dati!)
il risultato sono i byte che devi prendere in considerazione del nuovo
cluster
spero che questa spiegazione sia + o - chiara...
buonagiornata
cod

 sà?
Un minimo di sviluppina no, eh? :)
Con una ricerca molto banale e cinque minuti ho trovato questo:
http://209.67.75.168/hardware/fatgendown.htm



O.K. al documento della Microsoft sulla FAT c'ero già arriva da un pezzo
e me lo sono già letto.
Il fatto è che è molto preciso e accurato per tutto il resto, vedi "boot
sector", "fat directory structure", etc..
C'è pure il paragrafo sulla "fat data structure" ma non mi dice come
interpretare i bytes di un settore dati e come i vari settori tengano
traccia del file.

 traccia del file.
Cosa intendi con "interpretare i bytes di un settore dati"? Non mi sembra
che ci sia nulla da interpretare: un file e` composto da uno o piu` cluster,
che a loro volta sono composti da uno o piu` settori da 512 byte. Il file e`
semplicemente l'unione di questi cluster. La considerazione meno banale e`
quella che l'ultimo cluster puo` non essere usato completamente (la
dimensione esatta del file e` contenuta in un altro campo del suo
descrittore); lo spazio inutilizzato si chiama "slack space" ed e` il motivo
per cui FAT32 (ma anche NTFS), potendo usare cluster piu` piccoli, spreca
meno spazio.
