Сначала я открываю файл, затем использую dup2
, чтобы скопировать дескриптор файла.Почему, когда первый дескриптор файла закрыт, я все еще могу прочитать файл через другой?
#include <fcntl.h>
#include <stdio.h>
#include <errno.h>
#include <unistd.h>
int main(int argc, char *argv[])
{
int fd,fd2=7; /*7 can be any number < the max file desc*/
char buf[101];
if((fd = open(argv[1], O_RDONLY))<0) /*open a file*/
perror("open error");
dup2(fd,fd2); /*copy*/
close(fd);
if(read(fd2,buf,100)<0)
perror("read error");
printf("%s\n",buf);
return 0;
}