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

表示

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はDISPLAYのポインタを引数に持つ関数のポインタ.
DISPLAYの定義

 62 typedef struct {
 63   FTSENT *list;
 64   u_long btotal;
 65   int bcfile;
 66   int entries;
 67   int maxlen;
 68   u_int s_block;
 69   u_int s_flags;
 70   u_int s_label;
 71   u_int s_group;
 72   u_int s_inode;
 73   u_int s_nlink;
 74   u_int s_size;
 75   u_int s_user;
 76 } DISPLAY;


printscolは一列縦で表示する
printlongはタイムスタンプ・サイズなどを表示
printstreamはカンマ区切りで表示
printcolは横いっぱいに表示