linux重定向串口打印到telnet ssh远程终端

2023-05-16

源码:

log.c

#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
应用:telnet 运行 ./log on即可看到实时打印

telnet后,执行命令:setconsole /dev/pts/0(tty显示终端)也有同样的功能

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

linux重定向串口打印到telnet ssh远程终端 的相关文章

  • 确定我可以向文件句柄写入多少内容;将数据从一个 FH 复制到另一个 FH

    如何确定是否可以将给定数量的字节写入文件句柄 实际上是套接字 或者 如何 取消读取 我从其他文件句柄读取的数据 我想要类似的东西 n how much can I write w handle n read r handle buf n a
  • 在 C++ linux 中将 STRINGS 写入串口

    我知道这个问题遍布互联网 但仍然没有任何东西能让我完全解决这个问题 我想用 C linux 将数据写入 Propeller 板的串行端口 从控制台获取输入时程序运行良好 但是当我向它写入字符串时总是返回 ERROR Invalid comm
  • “传输协议线程失败” – “套接字为 EOF”,使用 Java 进行 J2SSH 连接

    我正在尝试通过我的 Java 代码建立 SSH 连接 但遇到异常 我通过 Putty Winscp 工具测试了我的连接 它工作正常 问题出在我的 Java 代码上 SEVERE The Transport Protocol thread f
  • Emacs + 流浪汉 + plink

    我正在尝试让 emacs trapmp 在 Windows XP 下运行 以便在 Amazon EC2 实例上通过 putty plink 工作 用于执行此操作的文档很少 我可以找到部分文档 但没有一个文档能够解决实现此功能所需的所有步骤
  • Mcrt1.o和Scrt1.o有什么用?

    我坚持使用以下两个文件 即 Mcrt1 o 和 Scrt1 o 谁能帮我知道这两个文件的用途 如何使用它 我们以 gcrt1 o 为例 在使用 pg 选项编译进行性能测试时非常有用 谢谢 表格的文件 crt o总是 C 运行时启动代码 大部
  • 使用 plistBuddy 获取值数组

    var keychain access groups declare a val usr libexec PlistBuddy c Print var sample plist echo val echo val 0 Ouput Array
  • 当用户按下打印时运行脚本,并且在脚本结束之前不开始假脱机(linux,cups)

    我需要做的是结合用户按下打印来执行 python 程序 脚本 并且在该程序退出之前不要让打印作业假脱机 原因是打印驱动程序不是开源的 我需要更改用户设置 在本例中是部门 ID 和密码 通常是每个用户 但因为这是一个信息亭 具有相同帐户的不同
  • Awk - 计算两个文件之间的每个唯一值和匹配值

    我有两个文件 首先 我尝试获取第 4 列中每个唯一字段的计数 然后匹配第二个文件的第二列中的唯一字段值 File1 第 4 列的每个唯一值和 File2 第 2 列包含我需要在两个文件之间匹配的值 所以本质上 我试图 gt 如果 file2
  • 如何从 PROC 获取有关子进程的信息

    我正在尝试编写一个以几个进程作为参数的程序 然后父进程执行每个子进程并打印出一些相关的统计信息 示例 generate ls l 将生成一个程序 打印出有关 ls l 的一些统计信息 特别是其系统时间 用户时间和上下文切换次数 我不想使用
  • Fedora dnf 更新不起作用?

    当我尝试使用 update 命令更新 Fedora 22 时 sudo dnf update 我收到以下错误 错误 无法同步存储库 更新 的缓存 无法准备内部镜像列表 Curl 错误 6 无法解析主机名 无法解析主机 mirrors fed
  • 使用 ssh-keygen 创建 SSH 密钥不会创建 .ssh 文件夹

    我正在尝试使用 msysgit 创建我的公共 私有 rsa 密钥对 我运行这个命令 ssh keygen C email protected cdn cgi l email protection t rsa 一切看起来都很好 我收到消息了
  • Raspberry 交叉编译 - 执行程序以“分段错误”结束

    我有一个自己编写的程序 我想从我的 x86 机器上为 Raspberry Pi 构建它 我正在使用 eclipse 生成的 makefile 并且无法更改此内容 我已经阅读了 CC for raspi 的教程 Hackaday 链接 htt
  • Web 应用程序的带宽和流量模拟器?

    您能否建议如何创建一个测试环境来模拟 Web 应用程序中的各种类型的带宽和流量 或者也许是一个针对本地主机执行此操作的开源程序 我认为在编写网络应用程序时这是一个非常重要的主题 但这不是一个常见的主题 我能想象创建这种环境的唯一方法是在本地
  • C:如果文件描述符被删除,阻塞读取应该返回

    我正在以阻塞的方式从设备 文件描述符中读取 可能会发生这样的情况 在不同的线程中 设备被关闭并且文件描述符被删除 不幸的是 读取没有返回或注意到并且一直阻塞 作为一种解决方法 我可以使用 select 作为超时来执行 while 循环 如果
  • 使用 inotify 的正确方法是什么?

    我想使用inotifyLinux 上的机制 我希望我的应用程序知道文件何时aaa被改变了 您能给我提供一个如何做到这一点的示例吗 文档 来自监视文件系统活动 inotify https developer ibm com tutorials
  • 无法让 TeamCity 使用默认私钥向 GitHub 进行身份验证

    我正在尝试让 TeamCity 构建我的私人 GitHub 存储库 当我显式设置密钥文件的路径时 我能够成功让我的 VCS 根通过连接测试 然而 尽管进行了大量的谷歌搜索 当我使用 默认私钥 选项时 我无法让它工作 我明白了com jcra
  • 如何将后台作业的输出分配给 bash 变量?

    我想在 bash 中运行后台作业并将其结果分配给一个变量 我不喜欢使用临时文件 并且希望同时运行多个类似的后台任务 root root var echo hello world root root echo var hello world
  • 在 Linux 上访问 main 之外的主要参数

    是否可以访问参数main在外面main 即在共享库构造函数中 在 Linux 上除了通过解析之外 proc self cmdline 您可以通过将构造函数放入 init array部分 功能在 init array 不像 init 使用相同
  • dlopen 或 dlclose 未调用信号处理程序

    我在随机时间内收到分段错误 我注册了信号 但发生分段错误时未调用信号处理程序 include
  • Windows 上的 SSH 没有 kex aleg 问题

    我在 Windows 上安装了 OpenSSH 然而 我得到没有小桶阿尔格尝试连接到我的 Amazon EC2 实例时出现问题 我可以使用相同的身份文件通过 WinSCP 和 Putty 连接它 我还在我的 etc sshd config

随机推荐

  • python+selenium浏览器驱动(chrome,Firefox,IE)下载与封装

    自动化介绍 自动化分为手动自测试和自动化测试 xff0c 想要转变需要一个思维过程 xff0c 自动化通俗来讲是一些重复性操作 xff0c 这要可以用代码来驱动 Selenium 浏览器自动化测试框架 是一个用于Web应用程序测试的工具 S
  • Python--for循环

    Python for循环 在python中 xff0c for循环可以遍历任何序列 xff0c 比如列表 字符串 for循环的基本格式如下 xff1a span class token keyword for span 变量 span cl
  • [BJWC2010] 严格次小生成树(kruskal+树剖)

    这题果然是模板题 一堆做法 但是根本思想是一样的 都是先跑一遍最小生成树 xff0c 然后维护一下路径上最大值和小于最大值的最大值 主要的实现方法有三种 1 kruskal 43 倍增 43 lca 复杂度是 O m l o
  • KEIL5安装与使用。

    1 KEIL5安装与使用 1 1 KEIL5软件获取 nbsp nbsp nbsp Keil官网下载地址 https www keil com download product nbsp 1 2 KEIL5软件安装 双击安装包 amp x
  • vs code Java运行问题:Build failed, do you want to continue?

    因为vscode构建将编译项目中的所有java文件 xff0c 所以 xff0c 应该是你的其他java文件存在一些问题 xff0c 所以无法通过编译 xff0c 但是这个你选择的java文件可以通过编译 xff0c 所以如果你继续 xff
  • 字符串的复制,将一串字符串复制到另一串字符串中 c语言简单易懂

    题目叙述 xff1a 编写一个函数 strcpy xff0c 其功能为将字符串 src 拷贝到字符数组 target xff0c 函数原型声明为 xff1a void strcpy char target char src xff1b 在
  • 类做友元应用案例 c++ 简单易懂

    span class token macro property span class token directive keyword include span span class token string lt iostream gt s
  • 拷贝构造函数的三种常见的调用时机 c++简单易懂

    拷贝构造函数的调用时机 xff1a 1 用一个已经创好的对象来初始化一个新对象 2 用值传递来给形参传值的时候 3 以值传递的方式返回局部对象都是利用拷贝构造函数的形式 分别用三个测试案例来举例 span class token macro
  • linux操作系统之cp命令(复制文件或文件夹)和mv(移动文件或文件夹) 通俗易懂

    一 xff1a cp命令 1 cp命令使用格式 xff1a cp 原文件 目标文件 2 简化 xff1a 当使用cp命令复制一个文件的时候 xff0c 如果文件名不发生改变那么目标文件只需要指明目标文件的路径即可 xff0c 就不用指明文件
  • 全局变量和局部变量的理解及注意事项 超详细 简单易懂

    一全局变量和局部变量 xff08 1 xff09 全局变量和局部变量的含义 xff1a 在函数体内部定义的变量叫做局部变量 xff0c 在函数体外部定义的变量叫做全局变量 局部变脸只能在定义的那个函数体的内部进行使用 xff0c 而全局变量
  • 光速幂

    warning xff1a 如果你还没有学过快速幂 xff0c 请掉头先学快速幂因为快速幂的适用范围比这个东西更广 我们先回忆一下快速幂是怎么解决的 我们是利用二进制的性质将复杂度优化到单词询问 O log i n
  • 队列的线性存储结构 c语言 数据结构 简单易懂 超详细~~

    include lt stdio h gt include lt stdlib h gt typedef int Elemtype define maxsize 100 typedef struct queue 注意再用顺序结构来表示栈和队
  • 复杂网络入门详解 适用于初学者。超详细~~

    一复杂网络的特性 1 复杂网络的特性之 小世界特性 xff1a xff08 1 xff09 社交网络中任何一个成员和任何一个认识的人之间的间隔人数不会超过六个人 即通过小于六个人 xff0c 总能找到社交网络中任何一个成员 xff08 2
  • Ubuntu系统中/usr/share/applications/目录下都是.desktop文件没有快捷方式

    在虚拟机中运行Ubuntu系统不免要安装一些linux应用软件 xff0c 为了方便我们会在虚拟机的桌面添加相应软件的快捷方式 一般情况下 xff0c 软件的快捷方式会保存在 usr share applications 目录下 我们可能会
  • my.cnf 中方便使用的设置

    记录my cnf 中一些方便使用的设置 vi etc my cnf 1 通过 prompt 61 name可以自定义提示信息 xff0c 通过配置显示登入的主机地址 xff0c 登陆用户名 xff0c 当前时间 xff0c 当前数据库sch
  • ubuntu环境下安装Jenkins

    文章目录 ubuntu环境下安装Jenkins方法一 war包安装1 34 启动脚本设置5 创建配置文件6 运行Jenkins 方法二 apt安装 问题记录1 启动jenkins报错 Failed to start Jetty或Failed
  • 打印1-100之间所有素数

    代码 方法1 方法2 执行结果 求1 10之间非素数之和
  • 打印出所有水仙花数

    水仙花数是指一个三位数 xff0c 其各位数字立方和等于该数本身 例如153 61 43 43 一重循环方式实现 首先分别求出三位数 i 的百位数 a 十位数 b 和个位数 c 之后判断a的立方和加b的立方和和c的立方和是否等于该三位数 i
  • LT8618SX寄存器配置

    LT8618SX功能 RGB输入 支持24位RGB xff0c YUV和BT656 BT601 BT1120输入 支持SDR和DDR数据采样 可编程上升 下降边缘时钟输入 支持高达148 5MHz DDR或297MHz SDR时钟输入 支持
  • linux重定向串口打印到telnet ssh远程终端

    源码 xff1a log c span class token macro property span class token directive hash span span class token directive keyword i