[cppll_novice:0760] Re: プログラムが決まったファイルを読み込む場合。
> επιστημηです。
>
> > "int main()" の部分を
> > "int main(int argc, char* argv[])"
> > に変更して、argv[0]から実行exeのファイルパスを取得して何とかできませ
んか?
>
> 老婆心ながら──
>
> argv[0] がロードモジュールのfull-pathになってる
> ってのはOS依存なのでご注意くださいまし。
>
επιστημηさんアドバイスありがとうございます。
επιστημηさんの仰る通り、私の環境では argv[0] はフルパスに
なっていませんでした。
自分はシェルスクリプトで対応する方法しか思いつきませんでした。
あと、当初の目的とは違ってしまうのですが実行ファイルのビルド
のときにインストールディレクトリを取得して makeファイルなどで
ソースファイルを書き換えるとか・・・・。
このような場合、επιστημηさんならばどのように処理
されるのでしょうか?
>
> > "int main()" の部分を
> > "int main(int argc, char* argv[])"
> > に変更して、argv[0]から実行exeのファイルパスを取得して何とかできませ
んか?
>
> 老婆心ながら──
>
> argv[0] がロードモジュールのfull-pathになってる
> ってのはOS依存なのでご注意くださいまし。
>
επιστημηさんアドバイスありがとうございます。
επιστημηさんの仰る通り、私の環境では argv[0] はフルパスに
なっていませんでした。
自分はシェルスクリプトで対応する方法しか思いつきませんでした。
あと、当初の目的とは違ってしまうのですが実行ファイルのビルド
のときにインストールディレクトリを取得して makeファイルなどで
ソースファイルを書き換えるとか・・・・。
このような場合、επιστημηさんならばどのように処理
されるのでしょうか?
▼ スレッド
- 756: いつもお世話になっている tetubou です。 ゲームなどの画像データのように、決まった名前の フ tetubou
- ├757: "int main()" の部分を "int main(int argc, char* argv[])" に変更して、argv[0]から実行exeのファイルパスを取 恣意の
- │├758: 老婆心ながら── argv[0] がロードモジュールのfull-pathになってる ってのはOS依存なのでご注意 FUKUDA, Fumiki
- ││└760: επιστημηさんの仰る通り、私の環境では argv[0] はフルパスに なっていませんでした。 自分 tetubou
- ││ └761: うーん…己自身がどこにあるかを知る、可搬性のあるAPIが 見当たらないからには条件コンパイ FUKUDA, Fumiki
- ││ └762: επιστημη@別解 Boost使いましょうか。 boost::filesystem::current_path() なんてのがあります。 ドキュ FUKUDA, Fumiki
- ││ ├765: あやふやなので出すのを迷いましたがメールしちゃいます。 Linuxだと readlink("/proc/self/exe", buf, bu Hisao Tsutsumi
- ││ ├766: UNIXではないですが、Qtにはありますね。 (実はQt使ったことないけど(^^;)) QApplication::applicationDirPa T.Sawamoto
- ││ ├767: それを知る方法は UNIX にはありません。 で、argv[0] の方も意味がある文字列になっているとは Masamichi Takatsu
- ││ └768: わかんないすが、 1.単純に環境変数に特定ディレクトリ を設定しておいて、getenv で読む 2.argv[1 OKI miyuki
- │└759: 私は、argv[0]が指す文字列はコマンドラインで実行ファイル名として タイプした文字列そのもの tetubou
- │ ├764: そすると、モジュールそのものを"モジュールディレクトリを基準に動作"する ものから"指定さ 恣意の
- │ └778: やはり、環境依存するかビルドの際に対応するという 方法になってしまうんですね。 tetubou
- └763: ↓の記事を参考に、tetubouさんにとって最適な方法を選んでみてはどうでしょうか? http://www.adl.ni Lichtenstein