SfondoCome si scrive (portabilmente) in ordine inverso per byte di rete?
Durante la progettazione di formati di file binari, è generalmente consigliato di scrivere interi in ordine di byte di rete. Per questo, ci sono macro come htonhl()
. Ma per un formato come WAV, in realtà viene utilizzato il formato little endian.
Domanda
Come si fa a scrivere i valori portabile little endian, a prescindere se la CPU il codice viene eseguito su un big endian o little endian architettura? (idee: possono le macro standard ntohl()
e htonl()
essere utilizzati "al contrario" in qualche modo o dovrebbe il codice appena runtime di prova se è in esecuzione su un piccolo o grande CPU endian e scegliere il percorso di codice appropriato??)
Così la domanda non è proprio sui formati di file, i formati di file erano solo un esempio. Potrebbe essere qualsiasi tipo di serializzazione in cui è richiesto il piccolo endian "on the wire", come un protocollo di rete (eretico).
Hai tre domande lì, ma solo due distinguersi. –
@ user2096041, riorganizzato, è più chiaro? –
Per trovare il endianness del sistema host è possibile seguire questo link: http://stackoverflow.com/questions/1001307/detecting-endianness-programmatically-in-ac-programme –