博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
杂乱笔记
阅读量:6313 次
发布时间:2019-06-22

本文共 1687 字,大约阅读时间需要 5 分钟。

QT代码中运行Linux命令

#include <QProcess>

//QProcess::execute("echo 210 >/sys/class/backlight/pwm-backlight.0/brightness");

~~~

root@atlas7-arm:~# tty
/dev/ttySiRF1
root@atlas7-arm:~# echo "asdf" > /dev/console 
asdf
root@atlas7-arm:~# echo "asdf" > /dev/ttySiRF1 
asdf

~~~

原理:

首先确定终端从哪里输出的。

命令:tty

:~# tty /dev/ttySiRF1

echo "asdf" > /dev/console   (这个Linux的,window是 CON

echo "asdf" > /dev/ttySiRF1 也是可以的。

所以代码里面用/dev/console 。

 

 因为文件指针使用的是标准流文件,因此我们可以不定义文件指针。
 接下来我们使用freopen()函数以只读方式r(read)打开输入文件  { freopen(" ", "r", stdin);}
 然后使用freopen()函数以写入方式w(write)打开输出文件slyar.out      {freopen("slyar.out", "w", stdout);}
 接下来的事情就是使用freopen()函数的优点了,我们不再需要修改scanf和printf,而是维持代码的原样就可以了。

 因为freopen()函数重定向了标准流,使其指向前面指定的文件。

 最后只要使用fclose关闭输入文件和输出文件即可。
 fclose(stdin);
 fclose(stdout);
详细如下:
所以我写了个宏:

 

#define START_SAVE_LOG(savedFilePath)\
    
freopen
(
"/dev/console"
,
"r"
, stdin);\
    
freopen
(savedFilePath,
"w"
, stdout);
  
#define STOP_SAVE_LOG\
    
fclose
(stdin);\
    
fclose
(stdout);

 因为目前INFO宏是在Loger.h里面,所以这个宏也加在里面。

具体使用方法:

START_SAVE_LOG("/home/root/AA.log")

STOP_SAVE_LOG

//实际应用
 
LogControl::getInstance()->addLog(string(to_string(i)+string(p)));
#define INFO(module,format, ...)                   \
    
do
{                                     \
        
if
(LogLevel >= INFO_LEVEL)        \
        
{                                   \
            
printf
(
"\e[33m"
);          \
            
printf
(module);          \
            
printf
(format, ##__VA_ARGS__);  \
            
printf
(
"\e[0m"
);          \
            
printf
(
"\n"
);          \
            
fflush
(stdout); \
        
}                                   \
    
}
while
(0)

==========================================================================

查看硬件信息:

查看/proc/cpuinfo,可以知道每个cpu信息,如每个CPU的型号,主频等。

#cat /proc/cpuinfoprocessor    : 0vendor_id    : GenuineIntelcpu family    : 6model        : 42model name    : Intel(R) Core(TM) i5-2320 CPU @ 3.00GHz
==========================================================================

转载地址:http://dxexa.baihongyu.com/

你可能感兴趣的文章
Oracle 连接、会话数的查看,修改
查看>>
Python使用QRCode模块生成二维码
查看>>
英语学习的重要性
查看>>
Android中Handler引起的内存泄露
查看>>
原产地政策,jsonp跨域
查看>>
HDU 1143 Tri Tiling(递归)
查看>>
ffmpeg参数具体解释
查看>>
记一次公司仓库数据库服务器死锁过程
查看>>
Oracle 11g password过期被锁定报道 ORA-28000 the account is locked
查看>>
【Struts2学习笔记(2)】Action默认值和配置Action于result各种转发类型
查看>>
轨磁条简介
查看>>
(算法)交错的字符串
查看>>
hdu 5471(状压DP or 容斥)
查看>>
oracle.jdbc.driver.OracleDriver和oracle.jdbc.OracleDriver这两个驱动的区别
查看>>
NSQ部署
查看>>
git常用命令记录
查看>>
IBM发布新一代云计算工具包MobileFirst Foundation
查看>>
唯品会HDFS性能挑战和优化实践
查看>>
大规模学习该如何权衡得失?解读NeurIPS 2018时间检验奖获奖论文
查看>>
大厂前端高频面试问题与答案精选
查看>>