Advanced Linux Programmingを流し読み。次はChapter 2 - Writing Good GNU/Linux Software。知ってるところは簡単に。知らなかったところは詳しめに。
- 引数はargc, argvで出る( main(int, char**)なら名前は何でもよかった気がするが)
- GNU/Linux Command-line conventions
- 短いオプションは -x のように、ハイフンひとつに文字ひとつの形。短いので打ちやすい。
- 長いオプションは --hoge のように、ハイフンひとつに単語ひとつの形。単語なので意味がわかりやすく覚えやすい。
- getopt_long使うと引数が構造体で定義できて便利(サンプル付き)
- printf + fflush(stdout) = fprintf
- exit code 0が正常、1その他値があると異常
- 環境変数
- USER, HOME, PATH, DISPLAYなど
- extern char** environ;
- getenv(3)
- temporary files
- mkstemp(3) "tempfile.txt.XXXXXX"などを引数にして呼び出すとuniqueな6文字にしたファイルディスクリプタを返してくれる
- tmpfile(3) 適当なテンポラリファイルのファイルポインタを作って返してくれる
- Coding Defensively
- assert(3) -DNDEBUGでコンパイルするとassertマクロが全部なくなって実用コードになる(便利やん)
- システムコールがコケるとき
- perror = puts( strerror (errno) )
- EXXXXXみたいなのがいろいろある(記述は長いけど面倒なので略)
- libhoge.aとかarの使い方
- shared libraries