博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何开启_GNU_SOURCE宏
阅读量:4027 次
发布时间:2019-05-24

本文共 764 字,大约阅读时间需要 2 分钟。

在编写网络程序时,会涉及到一些关于BSD系统保留下的结构体和宏定义,关于一切配置在linux系统的/usr/include/features.h文件中,开启项如下:

#ifdef _GNU_SOURCE

# undef  _ISOC99_SOURCE
# define _ISOC99_SOURCE 1
# undef  _POSIX_SOURCE
# define _POSIX_SOURCE  1
# undef  _POSIX_C_SOURCE
# define _POSIX_C_SOURCE        199506L
# undef  _XOPEN_SOURCE
# define _XOPEN_SOURCE  600
# undef  _XOPEN_SOURCE_EXTENDED
# define _XOPEN_SOURCE_EXTENDED 1
# undef  _LARGEFILE64_SOURCE
# define _LARGEFILE64_SOURCE    1
# undef  _BSD_SOURCE
# define _BSD_SOURCE    1
# undef  _SVID_SOURCE
# define _SVID_SOURCE   1
#endif
可以看出只要开启了_GNU_SOURCE的花,大部分的BSD功能可以打开,看看_GNU_SOURCE是否开启有一个测试程序:

#include <iostream>

int main()
{
#ifdef _GNU_SOURCE
  std::cout << "gnu/n";
#else
  std::cout << "non-gnu/n";
#endif
}
只要gcc -D _GNU_SOURCE test.c -o test.o编译生成的text.o文件,运行一下就知道是否开启了

转载地址:http://ptpbi.baihongyu.com/

你可能感兴趣的文章
spring的BeanUtils.copyProperties用法
查看>>
JAVA读取Oracle中的blob图片字段并显示
查看>>
Spring JTA应用之JOTM配置
查看>>
spring JdbcTemplate 的若干问题
查看>>
Servlet和JSP的线程安全问题
查看>>
GBK编码下jQuery Ajax中文乱码终极暴力解决方案
查看>>
jQuery性能优化指南
查看>>
利用spring的mock类进行单元测试
查看>>
spring的beanFactory和factoryBean
查看>>
性能测试中用LambdaProbe监控Tomcat Tomcat和Probe的配置
查看>>
Java RMI之HelloWorld篇
查看>>
Oracle 物化视图
查看>>
利用VMware搭建虚拟开发环境及VMware虚拟机上网
查看>>
spring系列之 回调函数的使用
查看>>
Java中的枚举(一)
查看>>
Java中的枚举(二)
查看>>
request.getInputStream()读取post传递的xml文件问题
查看>>
用Java实现断点续传(HTTP)
查看>>
Oracle树查询及相关函数
查看>>
Struts2中配置Servlet详解
查看>>