第七回スパルタンプログラミング
考えることのできない脳みそを使ってゆっくり勉強日
飲み過ぎたのか、食べ過ぎたからなのか、疲れすぎたのか、考えることができない日だったーー!くそぅ。
P.S. 日曜ものんびり過ごしたのだが、月曜がMAXで仕事が本当につらかった。火曜から少しずつ回復し、水曜にはだいぶ良くなった。
いったいなんなんだ、まったく!ぷんぷん
事前サーベイ
nginx
- ngx_init_cycle(&init_cycle);
- ngx_single_process_cycle(cycle);
がメイン?
ライブラリを使わず書いている。
分からなかったこと
os/unix/ngx_errno.c 81行目の:failedって何だ? orz.. gotoの行き先だった。
strerror()って何だ?
#define ngx_inline inline //って何だ?ngx_regex_malloc_doneの定義時に使っているngx_inlineが何かで調べたら行き着いた。
#define ngx_getpid getpid //って何だ?
lighttpd
mattnのhttp-server
- libuvで非同期IOの実装
- http-parserで構文解析
- nginxに比肩?
mighttpd(通称マイティ)
こんなのもあったよってことで記載しておく。
- haskellの計量スレッド成るものを使って実装
- nginxに比肩
方針:posix aioを使ってみよう!byいっしー
使い方調査
構造体名の由来:aiocb:asynchronous I/O control block
のんびり勉強
- ルータはWAN構築の基礎単位
- inet_ptonのptonはpresentation to numeric
- ラッパー関数に例外処理を含めると楽できる p.11
- htonlはhost to network long, 32bit host byte order
- htonsはhost to network short, 16bit host byte order
- iterative server:各クライアントを逐次処理する
- concurrent server:各クライアントを同時処理する
- posix:portable operating system interface
- API:application program interface
- IETF:the Internet Engineering Task Force
- UDP:User Datagram Protcol
- TCP:Transmission Controll Protocol
- value-result引数はポインタ変数:関数を呼び出すときには値、関数から戻るときには結果となるから
- value-result引数の顕著な例は、select関数の中3つの引数