Chinaunix首页 | 论坛 | 博客
  • 博客访问: 138192
  • 博文数量: 40
  • 博客积分: 673
  • 博客等级: 上士
  • 技术积分: 426
  • 用 户 组: 普通用户
  • 注册时间: 2011-09-21 14:08
文章分类

全部博文(40)

文章存档

2013年(4)

2012年(36)

我的朋友

分类: LINUX

2012-05-15 15:50:57

       linux中文件描述符有一个属性:CLOEXEC,当调用exec成功后,文件会自动关闭。在2.6.23以前需要调用fcntl(fd,F_SETFD, FD_CLOEXEC),来设置这个属性。在新版本中只需要在open函数中设置O_CLOEXEC这个标志就可以。

      虽然新版本支持在open时设置CLOEXEC,但是在编译的时候还是会提示错误 - error: ‘O_CLOEXEC’ undeclared (first use in this function)。原来这个新功能要求我们手动去打开,需要设置一个宏(_GNU_SOURCE)。可通过以下两种方法来设置这个宏以打开新功能:

1. 在源代码中加入 #define _GNU_SOURCE
2. 在编译参数中加入 -D_GNU_SOURCE


阅读(7947) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~