|
===================================== 〔語彙分解〕的な部分一致の検索結果は以下の通りです。 ・ 名 : [な] 【名詞】 1. name 2. reputation ・ 名前 : [なまえ] 【名詞】 1. name ・ 付 : [ふ] 1. (n,vs) giving to 2. submitting to 3. refer to 4. affix 5. append ・ 付き : [つき, づき] 1. (n,n-suf) attached to 2. impression 3. sociality 4. appearance 5. furnished with 6. under 7. to 名前付きパイプ()は、UNIXおよびUnix系の通常のパイプを拡張したもので、プロセス間通信の技法の1つ。その概念は Microsoft Windows にもあるが、意味論は大幅に異なる。通常のパイプは「無名」であり、使用しているプロセスが動作中のみ存在する。名前付きパイプは永続的で、プロセスが消滅しても存在し続けるので、使わなくなったら削除する必要がある。名前付きパイプはファイルのように扱うことができ、プロセス間通信 (IPC) を行うためにプロセスがオープンして使用する。なおその動作から名前付きパイプをFIFOと呼ぶこともある。 == Unix系 == 通常のシェルで使用する無名のパイプとは異なり、名前付きパイプはファイルシステムを使用する。 mkfifo() 〔mkfifo() 〕 または mknod() 〔mknod() 〕 で明示的に作成し、2つのプロセスが名前を指定してそのパイプにアクセスでき、一方のプロセスは読み手としてオープンし、もう一方は書き手としてオープンする。名前付きパイプを作成する mkfifo というコマンドもある。例えば、名前付きパイプを作成し、そのパイプに入力されたものを gzip で圧縮する場合、次のようにすればよい。 mkfifo my_pipe gzip -9 -c < my_pipe > out.gz & これとは全く独立に、パイプに圧縮すべきデータを送り込むことができる。 cat file > my_pipe 名前付きパイプは通常のファイルのように削除できる。 rm my_pipe 名前付きパイプはアプリケーションからアプリケーションへの情報転送を一時ファイルを作成することなく行える。例えば、gzip の伸長後の出力を次のように名前付きパイプにつなげる。 mkfifo --mode=0666 /tmp/namedPipe gzip --stdout -d file.gz > /tmp/namedPipe そして、伸長されたデータを次のように MySQL のテーブルにロードする〔MySQL 5.1 Reference Manual :: 12.2.6 LOAD DATA INFILE Syntax 〕。 LOAD DATA INFILE '/tmp/namedPipe' INTO TABLE tableName; 名前付きパイプがなければ、file.gz を伸長したものをいったん一時ファイルに格納しないと、MySQLにロードできない。一時ファイルに書き込むと、入出力がより多く発生して時間がかかり、ハードディスク上の空き領域も必要になる。 PostgreSQLのコマンドライン型フロントエンド psql も名前付きパイプからデータをロードする機能を備えている〔http://postgresql.1045698.n5.nabble.com/psql-and-named-pipes-td1981226.html〕。抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「名前付きパイプ()は、UNIXおよびUnix系の通常のパイプを拡張したもので、プロセス間通信の技法の1つ。その概念は Microsoft Windows にもあるが、意味論は大幅に異なる。通常のパイプは「無名」であり、使用しているプロセスが動作中のみ存在する。名前付きパイプは永続的で、プロセスが消滅しても存在し続けるので、使わなくなったら削除する必要がある。名前付きパイプはファイルのように扱うことができ、プロセス間通信 (IPC) を行うためにプロセスがオープンして使用する。なおその動作から名前付きパイプをFIFOと呼ぶこともある。== Unix系 ==通常のシェルで使用する無名のパイプとは異なり、名前付きパイプはファイルシステムを使用する。mkfifo()mkfifo() または mknod()mknod() で明示的に作成し、2つのプロセスが名前を指定してそのパイプにアクセスでき、一方のプロセスは読み手としてオープンし、もう一方は書き手としてオープンする。名前付きパイプを作成する mkfifo というコマンドもある。例えば、名前付きパイプを作成し、そのパイプに入力されたものを gzip で圧縮する場合、次のようにすればよい。 mkfifo my_pipe gzip -9 -c out.gz &これとは全く独立に、パイプに圧縮すべきデータを送り込むことができる。 cat file > my_pipe名前付きパイプは通常のファイルのように削除できる。 rm my_pipe名前付きパイプはアプリケーションからアプリケーションへの情報転送を一時ファイルを作成することなく行える。例えば、gzip の伸長後の出力を次のように名前付きパイプにつなげる。 mkfifo --mode=0666 /tmp/namedPipe gzip --stdout -d file.gz > /tmp/namedPipeそして、伸長されたデータを次のように MySQL のテーブルにロードするMySQL 5.1 Reference Manual :: 12.2.6 LOAD DATA INFILE Syntax 。 LOAD DATA INFILE '/tmp/namedPipe' INTO TABLE tableName;名前付きパイプがなければ、file.gz を伸長したものをいったん一時ファイルに格納しないと、MySQLにロードできない。一時ファイルに書き込むと、入出力がより多く発生して時間がかかり、ハードディスク上の空き領域も必要になる。PostgreSQLのコマンドライン型フロントエンド psql も名前付きパイプからデータをロードする機能を備えているhttp://postgresql.1045698.n5.nabble.com/psql-and-named-pipes-td1981226.html。」の詳細全文を読む スポンサード リンク
|