首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Cygwin上没有sys/sendfile.h?

Cygwin上没有sys/sendfile.h?
EN

Stack Overflow用户
提问于 2012-11-02 01:49:18
回答 2查看 1.7K关注 0票数 1

我正在尝试在Cygwin上编译一些C代码,它需要sendfile.h。当我尝试编译时,它会给我

代码语言:javascript
复制
fatal error: sys/sendfile.h: No such file or directory
compilation terminated.

我该如何解决这个问题?我是否必须迁移到linux平台?我在Cygwin上安装了gcc4.5。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-02 02:03:10

与前面提到的注释一样,sendfile(2)的手册页中也提到了sendfile不是POSIX

sendfile()在一个文件描述符和另一个文件描述符之间复制数据。因为这种复制是在内核中完成的,所以sendfile()比read(2)和write(2)的组合更有效,后者需要与用户空间来回传输数据。

这意味着它基本上是一个后跟write()read(),所以您自己实现它相对容易一些。

票数 2
EN

Stack Overflow用户

发布于 2019-08-04 21:43:40

我删除了

代码语言:javascript
复制
#include <sys/sendfile.h>

和重写

代码语言:javascript
复制
sendfile(write_fd, read_fd, &offset, stat_buf.st_size);

代码语言:javascript
复制
read(read_fd, &offset, stat_buf.st_size);
write(write_fd, &offset, stat_buf.st_size);

它工作得很好。谢谢。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13182743

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档