一、应用场景:

当我们要调试一台基于linux设备时,如果出现问题,但是没有串口查看信息,这个时候就可以考虑使用telnet登入到设备,并用串口打印信息重定向到telent窗口的方案;

二、源码实现:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <fcntl.h>
#include <sys/ioctl.h>
#include <unistd.h>int main(int argc, char *argv[])
{int tty = -1;char *tty_name = NULL;if(argc < 2){printf("miss argument\n");return 0;}/* 获取当前tty名称 */tty_name = ttyname(STDOUT_FILENO);printf("tty_name: %s\n", tty_name);if(!strcmp(argv[1], "on")){/* 重定向console到当前tty */tty = open(tty_name, O_RDONLY | O_WRONLY);ioctl(tty, TIOCCONS);perror("ioctl TIOCCONS");}else if(!strcmp(argv[1], "off")){/* 恢复console */tty = open("/dev/console", O_RDONLY | O_WRONLY);ioctl(tty, TIOCCONS);perror("ioctl /dev/console");}else{printf("error argument\n");return 0;}close(tty);return 0;
}

linux 打印输出重定向的问题相关推荐

  1. Linux之重定向命令

    Linux之重定向命令 1. 重定向命令的介绍 重定向也称为输出重定向,把在终端执行命令的结果保存到目标文件. 2. 重定向命令的使用 命令 说明 > 如果文件存在会覆盖原有文件内容,相当于文件 ...

  2. linux 输出重定向_linux学习笔记(实验楼) 实验12 数据流重定向

    一.实验介绍 1.1 实验内容 你可能对重定向这个概念感到些许陌生,但你应该在前面的课程中多次见过>或>>操作了,并知道他们分别是将标准输出导向一个文件或追加到一个文件中.这其实就是 ...

  3. 输出重定向Linux命令,Linux Shell重定向(输入输出重定向)精讲

    Linux Shell 重定向分为两种,一种输入重定向,一种是输出重定向:从字面上理解,输入输出重定向就是「改变输入与输出的方向」的意思. 那么,什么是输入输出方向呢?标准的输入输出方向又是什么呢? ...

  4. linux重定向路径,Linux输出重定向小结(转)

    最近/var空间老是报警,起因是/var/spool/clientmqueue下文件数量太多导致占用空间很大,此空间下存放了大量的crontab运行而发送给root的邮件,可以用以下步骤解决: 1.首 ...

  5. Linux Shell重定向Linux管道

    Linux Shell 重定向分为两种,一种输入重定向,一种是输出重定向:从字面上理解,输入输出重定向就是「改变输入与输出的方向」的意思. 标准的输入输出方向 输入方向就是数据从哪里流向程序.数据默认 ...

  6. linux 地址重定向,Linux重定向(输入输出重定向)详解

    我们知道,Linux 中标准的输入设备默认指的是键盘,标准的输出设备默认指的是显示器.而本节所要介绍的输入.输出重定向,完全可以从字面意思去理解,也就是: 输入重定向:指的是重新指定设备来代替键盘作为 ...

  7. Linux输入输出重定向

    Linux 输入输出重定向的示意图如上图所示. 执行command 的时候,默认情况下,会将标准输出,标准错误都输出到屏幕上去 标准输入默认是键盘输入,但是可以将文件定向到标准输入中,幻数为0 标准输 ...

  8. linux串口输出重定向到文件,DOS 下将屏幕打印输出重定向到指定文件中(或重定向到并口/串口)...

    今天突然要用到 pc 的串口发送数据 给单片机,我不想把太多的时间放在 api 上面,想了个简便方法,用两个 C库里的函数 freopen 和 putchar 就可以了 代码如下: #include ...

  9. Linux 输出重定向 “>”、“>>”、“freopen”

    有时候,我们编码时会使用printf或fprintf去打印输出调试信息或者报错信息,但正常这样去打印,只会显示在终端,如果终端关闭了,或者系统宕机了等,这些输出信息就没有了,为了将这些重要的信息保存下 ...

最新文章

  1. AI2XAML's Bug(sequel)
  2. LeetCode 之 JavaScript 解答第20题 —— 有效的括号(Valid Parentheses)
  3. 快速排序 ——双游标、单游标实现
  4. 如何将frm文件导入MySql数据库
  5. asp.net 控制windows服务
  6. 判断给定的整数数组是不是某二叉搜索树的后序遍历的结果
  7. 鱼骨图分析法实际案例_让你头脑更精明的十种思考法:鱼骨图
  8. java写一个窗体并连接MySQL_大神帮忙写一个简单地java页面,连接MySQL数据库之后能够显示数据库上的数据...
  9. 战争尾声(nowcoder 215073)
  10. java重排序_Java内存模型FAQ(四)重排序意味着什么?
  11. Java LineNumberReader getLineNumber()方法及示例
  12. 京东、宅急送的微服务实践分享(下)| 架构师小组交流会
  13. 淦!推荐10款程序员专用高清壁纸!!
  14. shell的图形化工具(七)
  15. copy的过去式_动词过去式变化规则
  16. P1359 租用游艇
  17. Unity-音频播放
  18. 爬虫技术(01)神箭手爬虫初学案例解读
  19. PSI成长之路_配置并成功运行
  20. [Go实战]怎么写测试类,运用testing.T

热门文章

  1. 6月8号=》105页-110页
  2. Windows XP环境下Apache2.2.21和Tomcat7.0.26下的整合
  3. 照书学WPF之 Dependency Property 1
  4. CentOS 下 rpm包与 yum 安装与卸载
  5. UA MATH524 复变函数13 奇点与留数
  6. UA MATH524 复变函数5 代数运算、可微性与积分基础例题
  7. UA OPTI570 量子力学6 单个粒子的波函数空间
  8. UA MATH566 例题 Poisson回归、Overdispersion与负二项回归
  9. windows 内核情景分析
  10. Vue.js 监听属性简单实例