Diverse piattaforme utilizzano schemi di separatori di linea diversi (LF, CR-LF, CR, NEL, SEPARATOR LINE Unicode, ecc.). Le librerie di runtime C++ (e C) rendono molto trasparente questo per la maggior parte dei programmi, convertendo '\n'
da e verso la codifica della nuova linea nativa della piattaforma di destinazione. Ma se il tuo programma ha bisogno di determinare l'effettiva sequenza di byte utilizzata, come potresti farlo in modo portabile?Modo portatile per determinare il separatore di linea della piattaforma
Il metodo migliore che è venuta in mente è:
- scrivere un file temporaneo in modalità testo con un solo
'\n'
in essa, lasciando che il run-time fare la traduzione. - Rileva il file temporaneo in modalità binaria per visualizzare i byte effettivi.
Che sensazione. C'è un modo per farlo senza file temporanei? Ho provato invece le sequenze di stringhe, ma il tempo di esecuzione in realtà non traduce '\n'
in quel contesto (che ha senso). Il tempo di esecuzione espone queste informazioni in qualche altro modo?