1、dup() ---复制文件描述符
例如:
int main(void)
{
int fd,newfd;
char * str;
//打开文件
fd = open("1.txt",O_RDWR|O_CREAT,0666);
if(fd < 0){
perror("open");
exit(1);
}
//复制文件描述符fd,返回新的文件描述符和fd表示同一个文件
newfd = dup(fd);
str = "hello wrold";
write(fd,str,strlen(str));
str = "华清远见";
write(newfd,str,strlen(str));
close(fd);
close(newfd);
return 0;
}
2、dup2() -----文件描述符重定向
例如:
int main(void)
{
int fd,newfd;
char * str;
//打开文件
fd = open("1.txt",O_RDWR|O_CREAT,0666);
if(fd < 0){
perror("open");
exit(1);
}
//将标准输出重定向到fd表示的文件中
dup2(fd,STDOUT_FILENO);
printf("hello world\n"); //printf打印的字符串,会写入到fd表示的文件中
close(fd);
return 0;
}