ファイル記述子を別のファイル記述子に直接バインドするシステムコールはありますか?

ファイル記述子を別のファイル記述子に直接バインドするシステムコールはありますか?

read() と write() ループは私が探しているのと同じくらい良いかもしれませんが、まだ同様の状況がありますか?それとも、予期しない障害物のために実装が不可能ですか?気になる

答え1

「ある fd の内容全体を別の fd にコピー」する従来の Unix システムコールはありません。 「ブロック読み取り、EOFの場合は停止、ブロック書き込み」ループは常にユーザー空間に書き込みます。

最近では、単一のシステム呼び出しで読み取り/書き込みループと同等の操作を実行できるようにするsendfile(2)やsplice(2)など、いくつかの関数が追加されました。これにより、移植性を犠牲にしてパフォーマンスが向上します。 (sendfile は Unices ごとに異なるパラメータをとるので #ifdef が必要です)

関連情報