关于dup2重定向STDOUT_FILENO之后的文件缓冲问题
来源:互联网 发布:linux tee 命令 编辑:程序博客网 时间:2024/05/26 19:18
91 int fd = open("test.txt",O_RDWR |O_CREAT | O_APPEND);
92 dup2(fd, STDOUT_FILENO);
93 printf("test dup2");
94 char *p="";
95 if ( p ==NULL)
96 printf("NULL\n");
97 sds name = sdsnew("wanglan");
98 printf("name:%s\n",name);
99 printf("len = %d\n",((struct sdshdr *)(name -sizeof(struct sdshdr)))->len);
100 free(name-sizeof(struct sdshdr)-PREFIX_SIZE);
101 if (fork() != 0)
102 exit(0);
103 //setsid();
104 while(1) {
105 sleep(1);
106 //write(STDOUT_FILENO,"child setsid",sizeof("child setsid"));
92 dup2(fd, STDOUT_FILENO);
93 printf("test dup2");
94 char *p="";
95 if ( p ==NULL)
96 printf("NULL\n");
97 sds name = sdsnew("wanglan");
98 printf("name:%s\n",name);
99 printf("len = %d\n",((struct sdshdr *)(name -sizeof(struct sdshdr)))->len);
100 free(name-sizeof(struct sdshdr)-PREFIX_SIZE);
101 if (fork() != 0)
102 exit(0);
103 //setsid();
104 while(1) {
105 sleep(1);
106 //write(STDOUT_FILENO,"child setsid",sizeof("child setsid"));
107 printf("child setsid\n");
在上面的代码情况下,printf打印的字符不会立即写到test.txt文件中,如果注释107行使用106行,字符串会立即写到文件中
进程退出时,要刷新缓冲区以清空缓冲区 ,这时就相当于修改缓冲区,这时父子进程会各有一份缓冲区里的数据(拷贝的),当把标准输出重定向到一个文件里,缓冲区里的数据的刷新方式会变为全缓冲。
阅读全文
0 0
- 关于dup2重定向STDOUT_FILENO之后的文件缓冲问题
- 文件重定向dup2函数
- 一个关于dup、dup2 文件描述符重定向函数的程序
- 重定向dup2的本质
- 关于dup和dup2函数的重定向与还原
- 文件描述符的重定向:dup/dup2
- 重定向输出遇到的缓冲问题
- 重定向输出遇到的缓冲问题 .
- linux 经典的例子 解释 dup dup2 文件描述符重定向函数 输入输出重定向
- linux 经典的例子 解释 dup dup2 文件描述符重定向函数 输入输出重定向
- linux 经典的例子 解释 dup dup2 文件描述符重定向函数 输入输出重定向
- 文件描述符重定向---dup&dup2
- dup2重定向后的恢复
- 关于重定向的问题
- 重定向dup2()函数
- dup2重定向
- 用dup2将标准输出重定向到一个打开的文件,稍后,恢复标准输出
- 【Linux调试技巧----标准输出重定向到文件】dup2和dup的妙用
- app 支付宝支付接入
- Leetcode问题解答:215. Kth Largest Element in an Array
- 记忆化深搜模板
- 计算年终奖陷阱区间java代码
- C++中模板为什么不支持分离编译
- 关于dup2重定向STDOUT_FILENO之后的文件缓冲问题
- 一起来学SpringCloud之
- 适配器模式
- Python3.6下字符串的操作总结
- 【WEB】JS面试题涉及基础知识总结(一)
- CDH集群中maptask的日志文件的位置整理
- 前端性能优化
- redis客户端jedis基于spring搭建单节点或者集群线程池连接
- 解决ie8及更低版本的浏览器强制升级代码