最近写网络服务器代码,遇见个问题:
在splice的使用过程当中,调用solice如下:
ret = splice(sockfd, NULL, pipe[1], NULL, 4096, SPLICE_F_MORE | SPLICE_F_MOVE);
查看头文件fcnlt.h,如下:
函数头文件也包含了fcntl.h,_GNU_SOURCE也试过了,依旧不行。
uname查看如下:
改成下面形式就可以:
ret = splice(sockfd, NULL, pipe[1], NULL, 4096, /*SPLICE_F_MORE | SPLICE_F_MOVE*/ 5);
也能正常工作,功能也能正常实现,貌似就是这几个宏的识别问题或者拼写错误。无语了。
直到现在也没有找到原因,暂时先用下面的调用形式使用了。
大家谁有和方面经验,分享一下
阅读(4365) | 评论(0) | 转发(0) |