700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > STDOUT_FILENO文件描述符的重定向及还原 (dup2函数用法) Linux系统编程

STDOUT_FILENO文件描述符的重定向及还原 (dup2函数用法) Linux系统编程

时间:2019-02-28 19:52:06

相关推荐

STDOUT_FILENO文件描述符的重定向及还原   (dup2函数用法) Linux系统编程

在重定向之前保存默认文件描述符,在向text文件写入后再还原STDOUT_FILENO描述符

#include<stdio.h>#include<stdlib.h>#include<unistd.h>#include<fcntl.h>#include<sys/types.h>int main(int argc, char* argv[]){int sfd,ret;sfd=dup(STDOUT_FILENO); //保存屏幕输出的文件描述符,用于恢复int fd=open("text.txt", O_CREAT|O_RDWR|O_TRUNC, S_IRUSR|S_IWUSR);if(fd < 0){printf("Open Error!\n");return 0;}printf("-------\n");sleep(1);dup2(fd,STDOUT_FILENO); //修改默认屏幕输出指向printf("write to text by STDOUT_FILENO\n");dup2(sfd,STDOUT_FILENO); // 还原屏幕输出默认文件描述符指向printf("STDOUT_FILENO come back\n");char buf[1000];int n;while((n=read(STDIN_FILENO, buf,1000)) > 0) //接受键盘输入,并将其存入buf所指向的缓存中 {if(write(fd, buf, n)<n) //将buf所指向的缓存区的n个字节的数据写入到由文件描述符fd2所指示的文件中{printf("Write Error!!\n");return 0;}}return 0;}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。