ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 《APUE》习题

《APUE》习题

原创 Linux操作系统 作者:bartfj 时间:2011-01-28 15:54:47 0 删除 编辑
8.7 验证POSIX下打开的目录流在exec后被关闭

int dirfd(DIR *dirp);
http://pubs.opengroup.org/onlinepubs/9699919799/functions/dirfd.html


#include

#include

#include

#include

#include

int main()

{

DIR * dp = opendir("/");

int fd = dirfd(dp);

int val = fcntl(fd,F_GETFD,0);

if(val&FD_CLOEXEC)

printf("close-on-exec is on\n");

else

printf("close-on-exec is off\n");

pid_t pid;

char fdstr[12]={0};

sprintf(fdstr,"%d",fd);

if((pid=fork()) < 0)

perror("fork error");

else if(pid == 0)

{

execl("/home/david/linux/fdtest","fdtest",fdstr,NULL);

exit(0);

}

exit(0);

}

fdtest的源代码如下:

#include

#include

#include

int main(int argc, char * argv[])

{

int fd;

sscanf(argv[1],"%d",&fd);

int val = fcntl(fd,F_GETFL,0);

perror("fcntl");

return 0;

}


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7232789/viewspace-686452/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-02-17

  • 博文量
    86
  • 访问量
    239496