将终端打印定向到log文件中

//main.cpp
#include <syslog.h>
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <string>
#include <assert.h>

int foo(void) {
    int fd = 0;
    fd = open("1.log",O_RDWR | O_CREAT | O_APPEND,0644);  /* 1.log的文件描述符是fd */
    if( -1 == fd) {
        printf("open 1.log file failed \n");
        return -1;
    }
    close(STDERR_FILENO);   /* 关闭STDERR_FILENO描述符 */
    dup2(fd,STDERR_FILENO); /* 复制文件描述符fd到STDERR_FILENO */
    close(fd);          /* 关闭文件描述符fd */
    openlog("1.log",LOG_PERROR,LOG_DAEMON);  /* 根据LOG_PERROR,将日志输出STDERR_FILENO定向到1.log  */
    return 0;
}

int main () {
    int ret = 0;
    ret = foo();
    if (0 != ret) {
        printf("error\n");
    }
    syslog(LOG_DEBUG,"hello world\n");
    return 0;
}

/*
g++ main.cpp
./a.out

cat 1.log
1.log: hello world

*/

将Linux系统的控制台定向到串口终端可以通过以下步骤完成。 首先,确保计算机上已经连接了串口终端设备。通常情况下,计算机上会有一个或多个串口接口,可以用来连接串口终端设备,比如串口线或串口转USB线。 接下来,在Linux系统,打开终端,并以管理员权限运行命令行终端。 然后,通过编辑引导加载程序(Bootloader)的配置文件来配置将控制台定向到串口终端。常见的引导加载程序包括Grub和U-Boot。具体的配置文件位置和名称可能会因不同的Linux发行版和引导加载程序而有所不同,可以查阅相关文档或参考Linux发行版的官方网站来获取具体信息。 在配置文件,找到关于console(控制台)的设置项。一般来说,设置项的格式为console=ttyX,其X是串口终端的设备号。如果系统上只有一个串口终端设备,通常是ttyS0;如果有多个串口终端设备,可能会是ttyS1、ttyS2等。将设置项修改为对应的串口设备号即可。 最后,保存修改并重启计算机。接下来,Linux系统的控制台输出就会被重定向到串口终端,可以通过连接的串口终端设备来查看和操作控制台。 需要注意的是,串口终端的波特率(Baud rate)设置需要与Linux系统的配置一致,通常默认为115200bps。如果波特率不一致,可能会导致乱码或无法正常通信。可以在引导加载程序的配置文件找到设置波特率的项,并进行相应的修改。 总的来说,将Linux系统的控制台定向到串口终端可以通过编辑引导加载程序的配置文件,修改console设置项,并设置波特率来完成。这样可以方便地通过串口终端设备来查看和操作Linux系统的控制台输出。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值