0

こんにちは、実行可能ファイルの名前と使用文字列を使用しようとしています。そのargv[0]ような目的で使用していますが、実行可能ファイル自体の名前の代わりに完全なパスが表示されます。

実行可能ファイル名のみを取得する方法はありますか?

4

6 に答える 6

4

最後の / を検索するだけです。

const char *exename = strrchr(argv[0], '/');
if (exename)
    // skip past the last /
    ++exename;   
else
    exename = argv[0];   
于 2009-11-20T18:38:00.073 に答える
3

私の知る限り、(少なくとも Linux では) 自分で char* から実行可能ファイル名を抽出するだけです。

これを行う最も簡単な方法はbasename(argv[0])、「libgen.h」を含めることで取得できる を使用することです。

于 2009-11-20T18:34:29.783 に答える
1

お使いのプラットフォームで利用できる場合は、関数がありますchar *basename(char *path)ベース名のドキュメントを参照してください。

于 2009-11-20T18:45:20.340 に答える
0

ハンドル引数 = 0 でGetModuleFileName http://msdn.microsoft.com/en-us/library/ms683197%28VS.85%29.aspxを使用します。

于 2009-11-20T18:33:12.283 に答える
0

パス文字列の最後の部分だけを使用してください。strrchr(get last path delimiter)への呼び出しと、たとえばstrcpy、最後のパス区切り文字から最後までの部分をコピーする類似の組み合わせ

于 2009-11-20T18:37:05.240 に答える
0

getprogname()プログラムの名前がOSによって設定されている場合に使用できます。

于 2011-03-04T18:09:08.713 に答える