使用dup2实现重定向到屏幕终端遇到问题
参考博客:https://blog.csdn.net/qq_26093511/article/details/53255970
参考博客:https://blog.csdn.net/db199410/article/details/52335450#commentBox
1.要解决的问题
通过复制文件描述符来实现文件重定向问题。
2.实现代码
2.代码输出
按照原来的想法,运行程序之后应该会在屏幕终端显示字符数组中的数据,但是实际上却什么都没有显示;
3.错误原因
没有正确理解缓存区的概念。
缓存区详细介绍参考博客:https://blog.csdn.net/db199410/article/details/52335450#commentBox
我自己总结的观点:在重定向的过程中,write()系统调用将数据写入STDOUT缓存区,如果不使用换行符或者缓存区满的时候,缓存区中的数据是不会打印到屏幕终端的。
4:解决方法
在字符串数组后面加上一个\n刷新缓存区即可在屏幕上得到字符数组的值。
5.存在的问题
如果数据在缓存区,那么使用fflush和正常关闭文件,也能够刷新缓存区,让数据打印到屏幕终端,实际上却没有?求解决?(加fflush的代码:在close(fd)前面加一句fflush(stdout))
求看到问题的小伙伴,如果看到能够解决,请给出你宝贵的意见,谢谢!
使用dup2实现重定向到屏幕终端遇到问题相关推荐
- Linux系统编程22:基础IO之掌握重定向的本质和使用dup2完成重定向
文章目录 (1)总结 (2)使用系统调用dup2完成重定向 (1)总结 从讲文件描述符开始,我们就引入了重定向的概念.读到这里,大家应该能够明白,重定向产生的原因就是文件描述符在分配时趋向于数值小的, ...
- 嵌入式串口打印信息重定向到当前终端界面
转至 https://blog.csdn.net/wuquan_1230/article/details/105782687 概述 在嵌入式Linux系统中,有时通过远程(telnet或者ssh)登录 ...
- linux dup2实现重定向,dup/dup2输出重定向
函数原型:#include int dup(int oldfd); int dup2(int oldfd,int newfd); dup用来复制oldfd所指的文件描述符.但复制成功时返回最小的尚未被 ...
- linux Dup2 网络转发,Linux系统编程:dup2()重定向
对于Dup2 的理解: 源代码: 1 #include 2 #include 3 #include 4 #include 5 #include 6 7 #define MSGSIZE 20 8 #de ...
- dup, dup2, 重定向恢复
做Shell lab的时候要求完成重定向以及恢复,这里记录一下相关知识 #include <unistd.h> int dup(int oldfd); dup用来复制参数oldfd所指的文 ...
- STDOUT_FILENO文件描述符的重定向及还原 (dup2函数用法) Linux系统编程
在重定向之前保存默认文件描述符,在向text文件写入后再还原STDOUT_FILENO描述符 #include<stdio.h> #include<stdlib.h> #inc ...
- dup、dup2实现文件描述符重定向(标准输入、标准输出、标准错误输出)
目录 dup函数 dup2函数 重定向标准输入 重定向标准输出 重定向标准错误输出 重定向恢复 总结 在前文中,可以知道,文件描述符实际上是指向文件表项的指针数组索引,也就相当于每个文件描述符都对应一 ...
- linux 重定向_Unix/Linux编程实践之IO重定向和管道
I/O重定向的原理模型 ls > test.file是如何工作的?shell是如何告诉程序把结果输出到文件,而不是屏幕? 在who | sort > user.file中,shell是如何 ...
- Unix的标准I/O与重定向的若干概念解析
标准I/O与重定向的若干概念 3个标准文件描述符 所有的Unix工具都使用文件描述符0.1和2.如下图所示,标准输入文件的描述符是0,标准输出的文件描述符是1,标准错误输出的文件描述符则是2.Unix ...
最新文章
- 树莓派:关于linux内核
- 怎么查询linux中的组密码,linux查看用户组中的用户
- 【读书笔记】基础博弈知识小结
- 【2012百度之星/资格赛】C: 易手机的套餐
- ubtunu打开firefox_如何在Firefox(在Lubuntu中)中打开“apt”链接?
- vue项目中如何引入ElementUI
- linux下访问西门子S7,Siemens SIMATIC S7-1200 CPU开放重定向漏洞(CVE-2015-1048)
- mysql数据库校对_mysql数据库校对原则
- php 类 private,有关php类的private属性继承问题详解
- TCP/IP(五)传输层之细说TCP的三次握手和四次挥手
- Intellij IDEA 安装插件 报 ‘plugin xxxx is incompatible‘ 解决方案
- mysql 判断大小_《fantasy系列》高性能mysql(一)
- windows 安装 mongodb
- 有效删除Win10英语(美式键盘)输入法
- sort函数(c语言排序)
- 阿拉伯数字 - 书法
- python作诗_用Python作诗,生活仍有诗和远方
- 聚石塔服务器 微信,聚石塔云服务器
- 古代帝王有哪些“恩爱夫妻”?
- oracle锁表语句执行提示无法终止当前对话_ORACLE LOCK TABLE 无法锁定表?