selectシステムコールの動き
nready=select(maxsd+1,&tfds,NULL,NULL,&timeout); tfdsに登録されたディスクリプタをtimeout時間監視し、読み込み可能状態になっているディスクリプタの…
Cnready=select(maxsd+1,&tfds,NULL,NULL,&timeout); tfdsに登録されたディスクリプタをtimeout時間監視し、読み込み可能状態になっているディスクリプタの…
Cクライアントからの接続待ち状態のことをブロックと呼ぶ。 acceptシステムコールを呼び出すと、ブロック状態になる。
C子プロセス終了直後に別の端末からの接続要求(connect)が来ると失敗する事がある。 ので、子プロセス終了直後にサーバ側でsleep()などで数秒のウェイトをした後に、selectやacceptを実行する必要がある。
Linuxコマンドラインから入力したexportは一時的。 OSを再起動するとクリアされる。 毎回反映させたいならば、起動時に読み込まれるシェルスクリプト(/etc/profile とか)に記述しておかないとダメ。
LinuxMakefileの内容によるが、最近のパッケージなら Makefileのあるディレクトリにて、 # make uninstall とすれば、削除できる。 ※インストール時にmakeで指定した、サービスのディレクトリ(/u…
Linuxホスト名を変更するときには、/etc/sysconfig/networkだけでなく、/etc/hostsにも変更を加えなきゃいけないことに注意。 system-config-networkを使用した際は、DNSタブのホス…
Cクライアント・サーバ間の大まかな処理の流れは以下の通り ■サーバ側 1. socket() によりソケットを開く 2. bind() により、コネクションを受けつけるIPアドレス・ポート番号を ソケットと対応づける 3….
LinuxMakefileも奥深いなぁ。 つーか、10年ぐらい前に作り方を習ったような気がするが、 もはや記憶にございません(汗) とりあえず、この辺で勉強するべし。
Linuxポートを監視し、対応するポートに要求がくると、対応するサーバを自動的に起動してくれる。 リソースを有効活用できるので、たまにしか、要求がこないようなサービスは、inetdの監視下においた方が良い。
CGNUのC言語ってANSI Cの拡張なんかな・・・。 なんか、知らない関数や構造体がバンバンでてくるんだけど・・・。 見やすいリファレンスがないと、正直きつい。 うーん、調査調査。 ※追記 調べた結果、ANSI C準拠ら…
最近のコメント