Subject: How can an executing program determine its own pathname? Date: Thu Mar 18 17:16:55 EST 1993
しかしながら本当に正しい名前かどうかを確かめることは出来ません。何故な ら、あるプログラムが argv[0] に好きな値を入れて別のプログラムを exec() することが禁止されているわけではないからです。argv[0] にプログラムの実 行可能ファイル名を設定してから新しいプログラムを exec するのは単に慣例 に過ぎません。
上記のことを示すためだけの例を挙げます:
#include <stdio.h>
main()
{
execl("/usr/games/rogue", "vi Thesis", (char *)NULL);
}
実行したプログラムは自分の名前 (プログラムの argv[0] の値) を "vi
Thesis" だと思い込みます (他のプログラムも現在実行中のプログラムの名前
が "vi Thesis" であると信じ込みます。でも、これは仮の例だから試さない
で下さいね:-))。