1つのチャンネルから別のチャンネルへデータをコピーします。データをコピーします。多くのデータをメインメモリにバッファしたり、余計にコピーすることを防ぐことができます。ト数になるまで処理します。-size引数が与えられない場合コピーはファイル終了まで行われます。-commandオプションがなければ、fcopyはコピーが完了するまでブロックをします。戻り値はoutchanへ書かれたバイト数です。-command引数はfcopyをバックグラウンドで実行させます。callbackはいくつか追加的な引数とともに呼びだされます。引数はoutchanへ書かれたバイト数を示します。バックグラウンドでコピーが行われている間にエラーが発生した場合、2番目の引数はエラーに関連付けられているエラー文字列として返されます。非ブロックモードに設定する必要はありません。プに入る必要があります。バックグラウンドでfcopyしている期間ではinchanやoutchanへのI/O操作を行うことはできません。コピー実行中にinchanかoutchanのどちらかがクローズされてしまうと、コピーは中止されコマンドコールバックは作成されません。inchanがクローズされると、すでにoutchanキューにコピーされているすべてのデータはoutchanに書き出されます。inchanがバックグラウンドコピーの間に読み込み可能になることがあります。ピーの妨害をさせないように、すべてのfileeventハンドラを停止させなければなりません。busy"エラーで返されます。-translationオプションに従って変換します。マニュアルを参照してください。この変換があるため、inchanから読まれたバイト数がoutchanへ書かれるバイト数と異なることがありえます。outchanへ書かれたバイト数だけが返されます。同期的なfcopyの場合は戻り値として返され、非同期的なfcopyの場合はコールバックの引数として返されます。Fcopyは個々のチャネルに設定されたエンコーディングに従います。fcopyは最初にinchanを内部UTF-8に変換します。その後、チャネルのエンコーディングに変換されます。-encodingオプションに関する詳細はfconfigureをご参照下さい。両方のチャネルが「バイナリ」をコード化するためにセットされている場合、変換は行われません。出力チャネルがエンコーディング「バイナリ」にセットされれば、システムはinchanを内部UTF-8コードで出力します。入力チャネルがエンコーディング「バイナリ」にセットされれば、システムは入力バイトが正当なUTF-8コードとみなし、これを出力エンコーディングに従って変換します。正当なUTF-8コードではないバイトについて、システムの動作は定義されていません。下記使用例では、コールバックがコピーされたバイト数を取得する方法を示します。ここではアプリケーションをイベントループに入らせるためにvwaitを用っています。この簡単化された例はコマンドコールバックとしてでなくでも、実行できます。ドコールバックでファイル終了の確認を行います。