こんにちは、実行可能ファイルの名前と使用文字列を使用しようとしています。そのargv[0]
ような目的で使用していますが、実行可能ファイル自体の名前の代わりに完全なパスが表示されます。
実行可能ファイル名のみを取得する方法はありますか?
こんにちは、実行可能ファイルの名前と使用文字列を使用しようとしています。そのargv[0]
ような目的で使用していますが、実行可能ファイル自体の名前の代わりに完全なパスが表示されます。
実行可能ファイル名のみを取得する方法はありますか?
最後の / を検索するだけです。
const char *exename = strrchr(argv[0], '/');
if (exename)
// skip past the last /
++exename;
else
exename = argv[0];
私の知る限り、(少なくとも Linux では) 自分で char* から実行可能ファイル名を抽出するだけです。
これを行う最も簡単な方法はbasename(argv[0])
、「libgen.h」を含めることで取得できる を使用することです。
お使いのプラットフォームで利用できる場合は、関数がありますchar *basename(char *path)
。ベース名のドキュメントを参照してください。
ハンドル引数 = 0 でGetModuleFileName http://msdn.microsoft.com/en-us/library/ms683197%28VS.85%29.aspxを使用します。
パス文字列の最後の部分だけを使用してください。strrchr
(get last path delimiter)への呼び出しと、たとえばstrcpy
、最後のパス区切り文字から最後までの部分をコピーする類似の組み合わせ
getprogname()
プログラムの名前がOSによって設定されている場合に使用できます。