c

lsコマンドのソース(FreeBSD版)つづき_4

c

表示 451 /* Select a print function. */ 452 if (f_singlecol) 453 printfcn = printscol; 454 else if (f_longform) 455 printfcn = printlong; 456 else if (f_stream) 457 printfcn = printstream; 458 else 459 printfcn = printcol; printfcnはDISPLA…

lsコマンドのソース(FreeBSD版)つづき_3

c

487 /* 488 * We ignore errors from fts_children here since they will be 489 * replicated and signalled on the next call to fts_read() below. 490 */ 491 chp = fts_children(ftsp, 0); 492 if (chp != NULL) 493 display(NULL, chp, options); 494 …

lsコマンドのソース(FreeBSD版)つづき

c

ファイル階層そのものを表現する FTS 構造体である。「ファイル」と 「FTSENT 構造体」を一般に読み変えることができる。 http://www.linux.or.jp/JM/html/LDP_man-pages/man3/fts.3.html 479 FTS *ftsp; 480 FTSENT *p, *chp; 481 int ch_options; 482 483 …

構造体メンバの配置順序

c

そして次に、全てのオブジェクト構造体が最初にstruct RBasic型のメンバbasicを持っていることに注目してほしい。この結果として、 VALUEがどの構造体へのポインタだろうとstruct RBasic*にキャストすればbasicメンバの内容にアクセスできる http://i.loveru…

lsコマンドのソース(FreeBSD版)

c

http://www.freebsd.org/cgi/cvsweb.cgi/src/bin/ls/Rev.1.86のls.c 「-D」オプションが追加されている 関数はmain ⇒ traverse ⇒ displayの流れで実行 関数ポインタが使われている fts関数しらない ls -a -l dirと実行したとき 0 1 2 3 ls -a -l dirname get…

RubyInline

これはすごいとおもた。 RubyInline