所有对文件的操作都是基于文件描述符
0为标准输入
1为标准输出
2为标准错误
3及以后为新打开文件的文件描述符
重定向 更改文件,描述符表的指针指向
int dup2(int oldfd,int newfd);
oldfd为源 newfd为复制到的目标
int fd = oppen("log.txt",O_CREATE|O_WRONLY|O_APPEND,0666);
if(fd<0)exit(1);
dup2(fd,6);
close(fd);
while(1)
{
char buffer[64];
if(!fgets(buffer,sizeof(buffer),stdin))break;
printf("%s",buffer);
}
这样就会让fgets从我们的文件中读取而不是键盘
把标准输出与标准错误分离,方便使用重定向把输出和错误写到不同的文件,便于调试
1115

被折叠的 条评论
为什么被折叠?



