タグ

cに関するmogwaingのブックマーク (104)

  • Programming UNIX Sockets in C - Frequently Asked Questions: クライアントとサーバ(TCP/SOCK_STREAM)両方に関する質問

    Previous Next Table of Contents 2. クライアントとサーバ(TCP/SOCK_STREAM)両方に関する質問 2.1 相手側のソケットが閉じられたことをどうやって知ることができますか? Andrew Gierth 氏 ( andrew@erlenstar.demon.co.uk) より: 私の知る限り… 相手側が (SO_LINGER を使ったややこしいことをしないで) close() するか終了したとすると、こちらの read() の呼び 出しは 0 を返すはずです。同じ場合で、write() 呼び出しで何が 起こるかは、もうちょっとわかりづらいです。直後の呼び出し時ではな く、その次の呼び出し時にEPIPE が返るでしょう。 もし相手が再起動するか l_onoff = 1, l_linger = 0 を設定して から閉じたとすると、read() からは(

  • コンピューター:C言語講座:FIFO(名前付きパイプ)について

    コンピューター:C言語講座:FIFO(名前付きパイプ)について 概要 FIFOは来、First In First Outというデータ形式の名称で、はじめに入ったデータがはじめに取り出されるという意味で、STACK形式のように最後に入ったデータがはじめに取り出されるのに対比するものですが、ここではプロセス間の通信に使用するFIFOを取り上げます。 TCP/IPプログラムでプロセス間で通信を行なう説明を行ないましたし、fork,exec,pipeでも同様にプロセス間で通信を行なえました。今回の話題のFIFOはPIPEによく似た感じのものですが、パイプは親があらかじめ準備してから子を起動して通信するのですが、FIFOはお互いに勝手に通信をはじめることが出来ます。ファイルのように名前をつけたパイプというイメージで、実際にUNIXではファイルのようにディレクトリ中に作成します。したがって、FIFO

  • tutorialog » 仮想デバイスドライバを利用したプロセス間通信について

    仮想デバイスドライバを利用したプロセス間通信について September 11, 2006 Posted by butcher in : C, Operating System , trackback 仮想デバイスドライバを利用したプロセス間通信について説明します。といってもよくわからないと思うので、ちゃんと説明します。 Unixでプロセス間通信というと、ソケットを使ったもの、パイプを使ったもの、共有メモリを使ったもの等がありますが、それぞれ長所・短所があると思います。 ものすごく簡単に言うと、 ソケットでは、 複数マシン間での通信が可能 通信処理のオーバーヘッドが大きい(コネクション開始・終了処理も含め) パイプでは、 ソケットより通信処理のオーバーヘッドが少ない 親子関係のプロセスに限定される 共有メモリでは、 シンプルで高速 書き込み・読み取りの同期をとるのが難しい 等が

  • no hacking, no life

    About Me skating software engineer / search engine developer butcherことmogwaingです。色んなIDが増えすぎて困ってます。 skateboardと検索エンジンとOSと音楽とアルゴリズムとチップス&サルサが好きです。 きゅうりとセロリが嫌いです。 ライフワークとして全文検索エンジンLuxを開発しています また、興味などから調べたログをちょっと体裁整えたtutorialogも公開してます。 Twitter: http://twitter.com/mogwaing 前のブログ: http://cheesy.dip.jp/blog/butcher/