c - Cでfopenを使用してWindowsで長いファイル名を開く

c windows

ここでは、fopenを使用して、Windowsでネイティブにサポートされている260文字より長いパスを持つファイルを開くのに問題があります。

ファイルを処理できるようにパスの前に付ける必要がある接頭辞\\\\?\\について知りました。

私の質問は、これはfopenと組み合わせてもまだ有効ですか?それでもファイルを開くのに問題がありますが、それに関する情報が見つかりません。私のパスは次のようになります:

\\\\?\\C:\\Deposit\\Source\\Here_Comes_Now_A_List_Of_Many_Subdirs_And_A_Long_File_Name


クロスプラットフォームツールを作成する必要があるため、Windows APIを使用できません。
答え
条件付きコンパイルを使用すると、クロスプラットフォームの方法でこの制限を回避できます。

#ifdef WIN32
     myFile = _wfopen( ... )
#else
     myFile = fopen( ... )
#endif


重要なクロスプラットフォームプロジェクトでは、どこかでこれを行うか、そうでない場合はライブラリ(SDLなど)を使用する必要があると思います。
関連記事

c - 無関係な(ボイド*):type_a sample; type_b * sample_b =(type_b *)((void *)&sample);

c - 指示レベルでの呼び出し(依存)グラフ

c - 「動的に読み込まれないコードで使用されるRTLD_NEXT」助けてください

c - execvpが失敗した場合に子プロセスを強制終了する

c - データベースファイルが変更されたときにSQLiteでアプリケーションに通知するにはどうすればよいですか?

c - 関数の引数に応じたCプリプロセッサのフロー制御

c++ - Cortex-M3経由でUSBウェブカメラにアクセスする

c++ - MSVCでECPGを使用する方法

c - Pthread Mutexロック

c++ - Windows 7で「何が聞こえるか」の音声を録音する[複製]