■掲示板に戻る■ 全部 1- 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 最新50
レス数が1000を超えています。残念ながら全部は表示しません。 |
初心者もOK! FreeBSD質問スレッド その14
- 378 :名無しさん@お腹いっぱい。 :02/03/18 12:36
- >>377
カーネルが最初の 2バイトを見て、#! かどうか調べる。
ライブラリで対応している処理系もあるけど、今はだいたい
カーネルのはず。
- 379 :378 :02/03/18 12:52
- FreeBSD だと execve 内で
static const struct execsw **execsw;
というのを参照している。
http://www.jp.freebsd.org/cgi/cvsweb.cgi/src/sys/kern/kern_exec.c?rev=1.155
で、kern/imgact_aout.c、kern/imgact_elf.c、kern/imgact_gzip.c、kern/imgact_shell.c
などというふうに、それぞれのバイナリ形式ごとに別れていると。
#! の解析と、argv の入れ換え部分はここね。
http://www.jp.freebsd.org/cgi/cvsweb.cgi/src/sys/kern/imgact_shell.c?rev=1.21.2.2
cd /usr/src/sys; grep #\! */* して追っかけていけば、なんとなく
わかった気になれるよ。そしてこの解説は、わかった気になっただけの
男が書いたものだから信用しちゃいけない。
掲示板に戻る 全部 前100 次100 最新50read.cgi ver5.26+ (01/10/21-)