splice システムコール † linux 上の splice システムコールについては,前から気になっていた. で,重い腰を上げて色々突ついてみた,というおはなし. ↑ splice システムコールとは † 指定した 2 つのファイルディスクリプタを(カーネル側で)接続して,「xx バイト転送せよ」と指示を出すシステムコールである. 詳しくは マニュアルを参照のこと. ↑ read/write の場合 † 例えば,ファイルのコピーをする場合,普通に考えると 読み出し側ファイルを open 書き込み側ファイルを open 以下繰り返し 読み出し側ファイルからデータを読み出し 書き込み側ファイルにデータを書き込む のようなプログラムになる. この場合,カーネル空間からユーザ空間のバッファにいったんデータを持ってきて,さらにカーネル空間にデータを持っていく,という処理をしていることになる.