- 论坛徽章:
- 0
|
linux下open函数的返回值fd是怎么回事 :?:
#include <sys/types.h>;
#include <sys/stat.h>;
#include <fcntl.h>;
#include <errno.h>;
#include <stdlib.h>;
#include <sys/wait.h>;
int main()
{
int fd1,fd2,fd3;
int *status;
if(fd1=open("u",O_RDONLY)==-1)
{
printf("open file error,No %d\n",errno);
}else{
printf("first file fd1 No %d\n",fd1);
}
printf("duplicate fd is %d\n",dup(fd1));//测试dup后fd
close(fd1);//关闭fd,没有close下面fd2、3也是0
if(fd2=open("vv",O_WRONLY)==-1)
{
printf("open file error,No %d\n",errno);
}else{
printf("second file fd2 No %d\n",fd2);
}
close(fd2);
if(fork() >; 0) exit;
else{//测试子程序中fd
if(fd3=open("on",O_RDWR)==-1)
{
printf("open file error,No %d\n",errno);
}else{
printf("third file fd3 No %d\n",fd3);
}
}
close(fd3);
wait(status);
return 0;
} |
|