2008-05-25から1日間の記事一覧

I/Oの多重化

I/Oの多重化(I/O multiplexing)2つ以上のI/Oに対して、どれかが入出力可能になった場合の通知をカーネルに依頼する機能I/Oの多重化が用いられる状況クライアントが複数のディスクリプタ(普通はstdinとネットワークソケット)を扱っている時 クラインとが複数…

POSIXシグナル2

同じシグナルがほぼ同時に複数配送される場合シグナルハンドラを設定してwaitを呼び出すだけでは、ゾンビ防止には不十分。Unixのシグナルはキューイングされないために、シグナルが発生した数だけ、シグナルハンドラが実行されない場合があるから。 正しい解…

POSIXシグナル

シグナルはプロセスに対するイベント発生の通知。ソフトウェア割り込みとも呼ばれる。シグナルは普通、非同期に発生する。シグナルは、 あるプロセスから別のプロセス(自分自身)へ あるいは、 カーネルからプロセスへ 送ることができる。シグナルには、処…

基本TCPソケット2−5

Tips netstatコマンド リスニングソケットを表示するには、-a フラグが必要。connectは、3WHSの2番目のセグメントを受信すると、制御を戻す。 acceptは、3WHSの3番目のセグメントを受信すると、制御を戻す。

I/Oの多重化2

poll関数 #include <poll.h> int poll(struct pollfd *darray, unsigned long nfds, int timeout); 戻り値:準備のできているディスクリプタ数、タイムアウトなら0、エラーなら-1struct pollfd { int fd; //検査するディスクリプタ short event;//fd上で興味のあるイ</poll.h>…