Newsgroup: it.comp.lang.c
Titolo: Scrivere dati su file in formato "universale"

Salve a tutti,
 sto sviluppando un programma che, tra le altre cose, deve scrivere
alcuni dati (numeri float e stringhe) su file.
Attualmente sto sviluppando la versione per W98 ma poi dovro' farne
una per Linux. E vorrei che entrambe potessero gestire lo stesso file
dati.
Il problema (ammesso che esista; potrei essere pure io che mi sto
facendo dei film inutili) mi sa che sta tutto nel modo di aprire il
file il lettura/scrittura.
Ho il sospetto che se apro il file in modo binario: 
file=fopen(nomefile,"wb");
i dati saranno scritti in esso in un formato dipendente dal SO
utilizzato. E' cosi' o no ?
Ammesso che sia fondato il mio sospetto, se scrivo in formato testo:
file=fopen(nomefile,"wt");
supero il problema ?
Altro dubbio (mi sa che e' strettamente collegato al precedente):
se ho:
-------------------------
float variabile;
.....
fwrite(&variabile,sizeof(variabile),1,file)
-------------------------
per Linux e W98 un float (ma il discorso lo estendo a qualsiasi alto
tipo) ha la stessa dimensione ?
Grazie a chiunque mi chiarisca le idee.

tipo) ha la stessa dimensione ?
Linux non fa differenza (da buon Unix-clone) tra file binari e file di
testo, quindi apri con "r" e "w" e basta.
Sotto Windows/DOS usa invece "rt" e "wt".
L'unico modo portabile per l'interscambio di dati e' l'utilizzo di un
file di testo.
--
Andrea Laforgia (ICQ 87230455)
http://www.geocities.com/AndreaLaforgia
"ci sono tre tipi di persone nel mondo : quelli che
 sono bravi in matematica e quelli che non lo sono."

 file il lettura/scrittura.
No, sta nel come scrivi e leggi i dati. Per la massima portabilità ti
conviene scriverli in formato ASCII utilizzando la printf() e rileggerli
con la scanf().
EMG


A eccezione di XDR implementato per RPC. Tutti i sistemi che supportano
XDR possono usare un formato 'network' di interscambio portabile.
Il formato floating letto e scritto con una scanf/printf potrebbe
non produrre lo stesso risultato causa arrotondamenti sui decimali
minori, comunque.
Sent via Deja.com
http://www.deja.com/


«Se dio esiste, spero che abbia una scusa valida.»
(D. Pennac)
"Hobbit" <mimmo....@NOSPAMtiscalinet.it> ha scritto nel messaggio news:3a797c88...@news.libero.it...


XDR possono usare un formato 'network' di interscambio portabile.
Linux lo implementa ?
Windows lo implementa ?



Stai scherzando vero? Qualsiasi sistema che implementa NFS server
o client implementa RPC. O pensi che portmapper lavori di socket?
Il fatto che non sia documentato nel man di Linux e' secondario,
se ne sono dimenticati :-). Guardati:
/usr/include/rpc/xdr.h
e indovina che copyright(C) c'e' dentro :-) ?


o client implementa RPC.
Windows lo implementa ?



Windows non e' precisamente il mio ambiente di sviluppo preferito.
Da terze parti si ottiene comunque anche la libreria di sviluppo
RPC, se non addirittura da MS (ovviamente con il kit di sviluppo).
I servizi RPC sono del resto gia' presenti in NT, per cui...


I servizi RPC sono del resto gia' presenti in NT, per cui...
Si', ma il nostro amico parla di Win98.


 --
Anche sotto win98 c'e' NFS, ovviamente non da MS che gli standard non
sa neanche dove stanno di casa...
