UNIXコマンド ls とか mv とかのソースコードの場所
自分でコマンドラインツール的な何かを作りたい時に参考にするために、ls
とか mv
とかのソースは手元に置いときたい。
Coreutils - GNU core utilities の Downloads というとこからダウンロードできます。ダウンロードしたものは以下のコマンドで解凍できます。
$ tar Jxvf coreutils-8.25.tar.xz
さて、早速 coreutils-8.25/src/mv.c
とか読むぞーとおもむろにタグファイルを作って(ctags -R
)中身を読もうとしたところ、オプションをパースする場所を見つけました。getopt_long
か〜。中身が見たいぞ〜。と思ってタグジャンプしようとしたら、できないですね。これを見るには getoptというライブラリを見ないとだめですね。というわけで今度は The GNU C Library からglibc をダウンロードします。getopt.c が glibc-2.23/posix
下にありました。getopt_long
という関数は同ディレクトリの getopt1.c にありました。めでたしめでたし。
coreutils-8.25/lib/getopt1.c
にありました。めでたしめでたし。