Utilizzando le API I/O del file Win32 standard (CreateFile/ReadFile/etc), sto cercando di attendere che un file diventi leggibile o che si verifichi un'eccezione nel file. Se Windows ha avuto alcun supporto POSIX decente, ho potuto solo fare:Win32 select/poll/eof/ANYTHING?
select(file_count, files_waiting_for_read, NULL, files_waiting_for_excpt, NULL, NULL);
E selezionare tornerà quando c'è qualcosa di interessante su alcuni dei file. Windows non supporta selezione o sondaggio. Belle. Ho immaginato di poter prendere il file e fare qualcosa del tipo:
while(eof(file_descriptor))
{
Sleep(100);
}
Il ciclo precedente usciva quando sono disponibili più dati da leggere. Ma no, Windows non ha nemmeno l'equivalente di eof()! Potrei eventualmente chiamare ReadFile() sul file e determinare se è all'eof in questo modo. Ma, in quel momento, dovrei gestire la lettura - spero di essere semplicemente in grado di capire che un file è leggibile, senza leggerlo.
Quali sono le mie opzioni?
Wow odio Windows. Tutto ciò che dovrebbe essere semplice non lo è. Non esiste davvero un tipo di funzione 'GetEndOfFile'? Vedo che c'è un SetEndOfFile :( – Andrew
@Andrew, Windows non è conforme a POSIX – CMircea
Diverso non significa inferiore, ovviamente con un modello alcune cose potrebbero essere più semplici e altre più complicate. Devi solo pensare alla stessa cosa da un prospettiva diversa –