使用標準的Win32文件I/O API(CreateFile/ReadFile/etc),我試圖等待文件變得可讀,或者文件上發生異常。如果Windows有什麼像樣的POSIX支持,我可能只是做:Win32 select/poll/eof/ANYTHING?
select(file_count, files_waiting_for_read, NULL, files_waiting_for_excpt, NULL, NULL);
而且選擇時,有什麼有趣的一些文件將返回。 Windows不支持選擇或輪詢。精細。我想我可以採取的文件,並做類似的事情:
while(eof(file_descriptor))
{
Sleep(100);
}
當更多的數據可供讀取上面的循環會退出。但是不,Windows並沒有相當於eof()!我可以在文件上調用ReadFile(),並確定它是否在這種情況下。但是,那麼我不得不在那個時候處理閱讀 - 我希望能夠簡單地弄清楚一個文件是否可讀,而沒有真正閱讀它。
我有什麼選擇?
哇,我討厭Windows。一切應該是簡單的不是。是否真的沒有'GetEndOfFile'類型的函數?我看到有一個SetEndOfFile:( – Andrew 2010-05-28 03:15:11
@Andrew,Windows不符合POSIX標準 – CMircea 2010-05-28 03:18:07
不同意並不意味着低劣;顯然,對於一個模型,有些事情可能更簡單,其他更復雜,你只需要考慮同一件事不同的視角 – 2010-05-28 07:40:38