2011-12-21 10 views
-2

最後に実行可能ファイル名がない現在の実行ファイルのファイルパスを取得しようとしています。現在のパス/ SDLライブラリ

私がやっている:

uint32_t size = sizeof(path); 

if (_NSGetExecutablePath(path, &size) == 0) { 


} 

else { 

    printf("buffer too small; need size %u\n", size); 
} 



char* program_name = dirname(path); // To remove executable name from the path 

それはパスの出力を動作します:/ユーザ/ ME /デスクトップ/ TNTは/ビルド/デバッグ/

しかし、私はいくつかを追加するつもりでした出力パスが間違っていた、SDLライブラリを使用して、GUI:

/Users/Me/Desktop/TNT/build/Debug/TNT.app/

+0

CやC++をやっているのですか? –

+0

CまたはC++で動作するものすべて – user1104856

+0

C/C++は言語ではありません... C on C++言語のサブセットですか? ??? ??? – Ulterior

答えて

1

それは間違っていない、そうです。 http://en.wikipedia.org/wiki/Application_bundle#Mac_OS_X_application_bundlesから

アプリケーションバンドルは.APP拡張子で終わる名前を持つトップレベル ディレクトリで、ディレクトリ階層です。

TNT.app/は、Mac OSX上の作業ディレクトリ(およびアプリケーションバンドルの最上位ディレクトリ)です。これは、コマンドシェルを入力し、ディレクトリにcdを入力すると確認できます。

+0

しかし、パスがTNT.appで終わると、ファイルが見つかりません。 修正方法? – user1104856

+0

私はあなたのファイルをTNT.appディレクトリに入れたいと思っています。一般にMac上では、そのディレクトリの下にあるすべてのものにアプリケーションがどのようにバンドルされているのでしょうか。それができない場合は、 ".. \"を追加して1つのディレクトリを後ろに移動させることができます。 – gravitron

+0

ありがとうございます。しかし、どのように ".. \"を追加して1つのディレクトリに戻すことができますか?printf( "実行可能パスは\"%s \ "\ n"、program_name); – user1104856

関連する問題