Sto provando ad utilizzare la libreria privata di basso livello <io.h> per aprire e leggere un file di testo ASCII.
in estrema sintesi:
// Apertura del file:
int hFile = _open( swFilename, _O_TEXT | _O_RDONLY );
// Determinazione della dimensione:
long size = _filelength( hFile );
// Allocazione del buffer:
char *buffer = malloc( size * sizeof(char) );
// Scrittura sul buffer:
long nRead = _read( hFile, buffer, size );
Se apro il file in modalità testo, il contenuto viene interpretato e ogni coppia di caratteri \r\n è rimpiazzata con un singolo \n. Questo fa si che non vi sia corrispondenza tra dimensione del file ed il numero di caratteri letti (size != nRead).
Allora si pone il problema di determinare correttamente la dimensione buffer da allocare. Qualche suggerimento?
Non ho problemi se apro il file in modalità binaria e poi aggiungo il terminatore nullo, ma se la _wopen è stata pensata per aprire il file in modalità _O_TEXT penso che debba esserci una soluzione per il corretto utilizzo di questo caso.