私は、Windows、Linux、および Mac のファイル IO 呼び出しをマクロに抽象化して遊んでいます (C ランタイムを回避するためfopen
、fclose
. 私は実際にはかなりの作業をしていますが、つまずきのブロックに遭遇しました。
これらの各プラットフォームによってスローされる可能性のあるすべてのエラーを、一般的なエラーのサブセットに要約しようとしています: Not Found、Exists、Invalid Access など。
Linux は明らかに十分に文書化されており、Mac にも最も一般的なものがありますが、Windows はネイティブのファイル I/O 関数に対してどのエラーがスローされるかを指定していません。明らかに を使用する必要がありGetLastError()
ますが、可能な値がどうなるかについての参照が見つかりませんでした。
これはどう?
Windows アプリケーションを作成し、CreatFile()
API を使用しています。できる限り適切にエラーを処理し、ユーザーに「クラップ! できない」と伝える代わりに、エラーから回復したいと考えています。ただし、MSDN のドキュメントには、生成される可能性のあるエラー コードが記載されていません。
特に(今のところ)Windowsファイル機能が生成する可能性のあるエラーコードへの参照を持っている人はいますCreateFile()
か?