Open otakumesi opened 7 years ago
POSIX関係の関数の失敗値は基本的に-1を返す?
isattyはファイルディスクリプタが端末を参照しているどうかを判定する関数。
ファイルディスクリプタについては下記を参照した。 http://qiita.com/toshihirock/items/78286fccf07dbe6df38f
ファイル記述子 | POSIXでの定義 | 意味 |
---|---|---|
0 | STDIN_FILENO | 標準入力 |
1 | STDOUT_FILENO | 標準出力 |
2 | STDERR_FILENO | 標準エラー出力 |
2以降はオープンされたファイルなどが入っていく
ioctlはライブラリの関数だった 1つ目の引数のファイルディスクリプタから、二つの引数で設定したオプションに合わせた内容をシステムに問い合わせて、その結果を最後の引数に代入するというものっぽい 参考 https://linuxjm.osdn.jp/html/LDP_man-pages/man4/tty_ioctl.4.html https://ja.wikipedia.org/wiki/Ioctl
TIOCGWINSZはウィンドウサイズを取得するもの
FTS_PHYSICALとはシンボリックリンクをシンボリックリンク自身としてみるもの その先のファイルではなく https://linuxjm.osdn.jp/html/LDP_man-pages/man3/fts.3.html
xo_parse_argsとは--libxo
周りのオプションをパースするもののようだ
そのほか、xo_がプレフィクスになっているものはそれ関係
libxoとはXML、JSON、HTMLなどの文書に出力するための関数セットを提供しているライブラリの模様
参考 http://www.unix.com/man-page/freebsd/3/xo_parse_args/ https://github.com/Juniper/libxo
getoptとはオプション解釈して返す関数
これ以上見つからなければ-1を返す 存在していればオプション引数を返して、外部にある変数optind、nextcharを更新する
外部変数optiondを元にオプション引数にアクセスするらしく、 次にgetoptを実行すると次のオプション引数が返される
int getopt(int argc, char const argv[], const char optstring);
ちなみに argc...コマンドラインで引き渡された引数の数 argv...コマンドラインで引き渡された引数の配列
-がつくものはオプション要素とみなされるらしい
ちなみにここのロジックでフラグを立てたりして、のちのロジックにまわしてる
参考 https://linuxjm.osdn.jp/html/LDP_man-pages/man3/getopt.3.html
getuid()は呼び出し元のプロセスの実行ユーザーIDを得る
参考 https://linuxjm.osdn.jp/html/LDP_man-pages/man2/getuid.2.html
https://github.com/freebsd/freebsd/blob/master/bin/ls/ls.c
FreeBSDのリーディングメモ