C / C ++を使用してプログラムが実行されているディレクトリのフルパスを取得するための、プラットフォームに依存しない方法とファイルシステムに依存しない方法はありますか?現在の作業ディレクトリと混同しないでください。(clibやSTLのような標準的なライブラリでない限り、ライブラリを推奨しないでください。)
(プラットフォーム/ファイルシステムに依存しない方法がない場合、特定のファイルシステムについてWindowsおよびLinuxで機能する提案も歓迎します。)
argv[0]
、この手法はOSに大きく依存します。
#include <windows.h>
、Windowsは自動的にをchar*
実行可能パスに配置し_pgmptr
ます。Windowsのみで作業している場合、追加の関数を呼び出したり、ジャンクであると想定したりする必要はありません。
_pgmptr
ます。MSDNのドキュメントには、_pgmptr
および_wpgmptr
変数は非推奨であり_get_pgmptr(char**)
、_get_wpgmptr(wchar_t**)
代わりに関数を使用する必要があると記載されています。MSDN