首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >F_GETPIPE_SZ未声明

F_GETPIPE_SZ未声明
EN

Stack Overflow用户
提问于 2021-09-29 17:32:14
回答 1查看 300关注 0票数 1

我在试着弄出管子的尺寸:

代码语言:javascript
复制
printf("pipe 0 size: %d bytes\npipe 1 size: %d bytes\n", fcntl(fd[0], F_GETPIPE_SZ), fcntl(fd[1], F_GETPIPE_SZ));

已使用的标题(其中一半被另一部分代码使用):

代码语言:javascript
复制
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/mman.h>
#include <sys/wait.h>

当我试图编译时,gcc在以下错误中失败:

‘F_GETPIPE_SZ’未声明(在此函数中首次使用)内核版本-5.4.0-88-泛型

libc6-dev版本- 2.31-0ubuntu9.2

gcc版本- 4:9.3.0-1ubuntu2

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-29 17:44:06

因为这个宏不是POSIX的一部分,所以必须在包含_GNU_SOURCE之前定义<fcntl.h>特性测试宏。

这在the fcntl(2) man page中的“符合”一节中有说明。

请参阅What does "#define _GNU_SOURCE" imply?

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

https://stackoverflow.com/questions/69381049

复制
相关文章

相似问题

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