我正在尝试在Cygwin上编译一些C代码,它需要sendfile.h。当我尝试编译时,它会给我
fatal error: sys/sendfile.h: No such file or directory
compilation terminated.我该如何解决这个问题?我是否必须迁移到linux平台?我在Cygwin上安装了gcc4.5。
发布于 2012-11-02 02:03:10
与前面提到的注释一样,sendfile(2)的手册页中也提到了sendfile不是POSIX
sendfile()在一个文件描述符和另一个文件描述符之间复制数据。因为这种复制是在内核中完成的,所以sendfile()比read(2)和write(2)的组合更有效,后者需要与用户空间来回传输数据。
这意味着它基本上是一个后跟write()的read(),所以您自己实现它相对容易一些。
发布于 2019-08-04 21:43:40
我删除了
#include <sys/sendfile.h>和重写
sendfile(write_fd, read_fd, &offset, stat_buf.st_size);至
read(read_fd, &offset, stat_buf.st_size);
write(write_fd, &offset, stat_buf.st_size);它工作得很好。谢谢。
https://stackoverflow.com/questions/13182743
复制相似问题