[PHP-dev 1260] Re: PHP-4.1.3から、cli版で作成してPHPコマンドで、php.iniを読み込めない
Tadashi Jokagi
ml @ elf.no-ip.org
2006年 5月 28日 (日) 00:59:49 JST
上鍵です.こんにちは.
同様のことは「[PHP-dev 1251]」でやってたりしますが一応.
$ ./main -a -b -c/path/to/ini -c /path/to/ini -c /path/to/ini
0 [./main]
1 [-a]
2 [-b]
3 [-c/path/to/ini]
4 [-c]
5 [/path/to/ini]
6 [-c]
7 [/path/to/ini]
で,既に問題は「[PHP-dev 1257]」にて明白で,Linux では shebang は
#!<COMMAND-PATH> <ARGUMENT>
だと思われます.これを main に当てはめるとこんな感じです.
$ ./main "-a -b -c/path/to/ini -c /path/to/ini -c /path/to/ini"
0 [./main]
1 [-a -b -c/path/to/ini -c /path/to/ini -c /path/to/ini]
さらに shebang 形式にして実験してみます.
$ echo '#!'"$PWD/main -a -b -c/path/to/ini "-c /path/to/ini" -c /path/to/ini" > foo.sh
$ chmod +x foo.sh
$ ./foo.sh
0 [/tmp/main]
1 [-a -b -c/path/to/ini -c /path/to/ini -c /path/to/ini]
2 [./foo.sh]
つまり,そもそもの記述法だと,
#!/usr/local/bin/php -c /usr/local/lib/php.ini
これは下記と近いことになります.
/usr/local/bin/php "-c /usr/local/lib/php.ini"
gcc で確認した GNU getopt(というかglibc 内の getopt になるんでしょ
うけど)も PHP CLI SAPI の getopt も上記は
/usr/local/bin/php "-c" " /usr/local/lib/php.ini"
と等価になります.少なくとも GNU getopt と PHP CLI SAPI の getopt
は少なくとも上記に関して一般的な挙動として等価であるので,「バグ
ではない」と思いますがいかがでしょうか?
#識者でもないので細かいことは自信がないですが
--
----.----1----.----2----.----3----.----4----.----5----.----6----.----7
Tadashi Jokagi/Setagaya city mailto:elf @ elf.no-ip.org
YokukitanaII http://elf.no-ip.org/
Yokukitablog http://blog.poyo.jp/
Yokukitawiki http://wiki.poyo.jp/
PHP-dev メーリングリストの案内