APUE2e之Exercise 8.7

来源:互联网 发布:mac文件夹消失 编辑:程序博客网 时间:2024/06/09 16:45

close-on-exec flag


/* * exercise8-7.c * *  Created on: Nov 11, 2011 *      Author: zhuhuang */  #include <stdio.h>#include <unistd.h>#include <dirent.h>#include <fcntl.h> int main(void){DIR *dir;int filedes1, filedes2;int fdflag1, fdflag2;struct dirent *direntry; filedes1 = open("/", O_RDONLY); //file descriptor flag before calling opendir. it is off.fdflag1 = fcntl(filedes1, F_GETFD);if(fdflag1 & FD_CLOEXEC)printf("filedes1: close-on-exec flag is onn");elseprintf("filedes1: close-on-exec flag is offn"); //See Page 234 on APUE2e, opendir function will set the close-on-exec flag for the descriptor filedesdir = fdopendir(filedes1);while((direntry = readdir(dir)) != NULL){printf("%sn", direntry->d_name);} //file descriptor flag after calling opendir. it is on now.fdflag1 = fcntl(filedes1, F_GETFD);if(fdflag1 & FD_CLOEXEC)printf("filedes1: close-on-exec flag is onn");elseprintf("filedes1: close-on-exec flag is offn"); //set close-on-exec flag operation on filedes1 won't affect filedes2filedes2 = open("/", O_RDONLY);fdflag2 = fcntl(filedes2, F_GETFD);if(fdflag2 & FD_CLOEXEC)printf("filedes2: close-on-exec flag is onn");elseprintf("filedes2: close-on-exec flag is offn");}


原创粉丝点击