0
sendfile的問題是無法使用文件fds複製兩個文本文件。 錯誤是EINVAL。 //描述符無效或鎖定,或類似mmap()的操作不適用於in_fd。sendfile()無法複製普通文本文件
這是什麼意思?
從sendfile(man sendfile)的手冊頁中,我找到了這條語句。不知道它是否可以複製兩個普通文件。 (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.
手冊頁如果sendfile也提示相同。現在我正在使用std。 C++的方式。 ofstream << ifstream.rdbuf()。有沒有更好的方法,即使它是特定於Linux的? – siddhusingh 2011-03-25 05:31:48
不是。這通常不是操作系統提供「在此複製此文件」系統調用的地方。 – geekosaur 2011-03-25 05:38:05