sendfileの問題は、ファイルfdsを使用して2つのテキストファイルをコピーできないことです。エラーはEINVALです。//記述子が無効またはロックされていないか、mmap()のような操作をin_fdで使用できません。
これは本当にどういう意味ですか?
sendfile(man sendfile)のmanページから、このステートメントを見つけました。2つの通常のファイルをコピーすることが機能するかどうかはわかりません。
現在(Linux 2.6.9):in_fdは、mmap()のような操作をサポートするファイルに対応している必要があります(つまり、ソケットにすることはできません)。out_fdはソケットを参照する必要があります。
Applications may wish to fall back to read(2)/write(2) in the case where sendfile() fails with EINVAL or ENOSYS.