嵌入式串口打印信息重定向到当前终端界面

简介: 嵌入式串口打印信息重定向到当前终端界面

概述


在嵌入式Linux系统中,有时通过远程(telnet或者ssh)登录到现场设备,想看程序的实时打印的调试信息,需要将输出到串口的调试信息重定向到当前登录的终端界面上。


也可以将程序重新启动到当前终端界面,但是在程序出现问题时,如果重启程序,可能会破坏了问题现场,再查找问题就不好查找了。


下面是实现的代码,可以将输出到串口的日志信息,重定向到当前的telnet或者ssh界面上,是不是很神奇!


实现代码


#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 TIOCCONS");
    }
    else
    {
        printf("error argument\n");
        return 0;
    }

    close(tty);
    return 0;
}


编译运行


编译

gcc  log.c -o log 


运行

./log on       #重定向日志输出到当前终端界面
./log off       #恢复日志输出到调试串口
目录
打赏
0
1
1
0
47
分享
相关文章
【开发/调试工具】【串口工具】不同串口软件如何生成带时间戳的日志
【开发/调试工具】【串口工具】不同串口软件如何生成带时间戳的日志
1546 0
【开发/调试工具】【串口工具】不同串口软件如何生成带时间戳的日志
|
9月前
|
嵌入式Linux系统关闭串口调试信息的输出
嵌入式Linux系统关闭串口调试信息的输出
354 1
Android 内核关闭CAN 串口设备回显功能
Android 内核关闭CAN 串口设备回显功能
68 0
优秀的 Modbus 主站(主机、客户端)仿真器、串口调试工具
优秀的 Modbus 主站(主机、客户端)仿真器、串口调试工具。modbus master,modbus,串口,工控,物联网,PLC,嵌入式
312 1
优秀的 Modbus 主站(主机、客户端)仿真器、串口调试工具
优秀的 Modbus 从站(从机、服务端)仿真器、串口调试工具
- 监视串行线路或以太网上的通信数据 - 支持多达 28 种数据格式,包括:Signed、Unsigned、Hex、Binary、Long、Float、Double等 - 支持 Modbus 协议地址和 PLC 地址相互切换 - 对任意数量寄存器中的数据绘制实时图表,监控数据的变化趋势 - 支持同时创建多个连接网络和大量从站设备 - 通过多个标签页进行管理,快速在从站设备之间进行切换 - 通过表格的形式管理寄存器,支持添加变量名和注释,支持切换背景与前景颜色 - 导出/导出从站设备寄存器数据到Excel - 内置字节转换工具,方便将Long、Float、Double类型数据转换为寄存器中的数据
365 0
优秀的 Modbus 从站(从机、服务端)仿真器、串口调试工具
树莓派已经通过网络连接通过串口通信在串口调试小助手打印与操作
树莓派已经通过网络连接通过串口通信在串口调试小助手打印与操作
289 0
树莓派已经通过网络连接通过串口通信在串口调试小助手打印与操作
QT串口助手(串口的查找和打开)
QT串口助手(串口的查找和打开)
310 0
简单WiFi控制小车系统(树莓派+python+web控制界面)
好丑😂 对不对 ,不过反正可以蛇皮走位就行。 蛇皮走位演示视频: 只需要 一个 index.html 和Index.py 就可以实现 简单WiFi 控制小车。 你需要准备的有
418 1
简单WiFi控制小车系统(树莓派+python+web控制界面)
嵌入式设备如何显示IP属地?
嵌入式设备如何显示IP属地?
318 0
嵌入式设备如何显示IP属地?
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等