杂乱笔记-阿里云开发者社区

开发者社区> 开发与运维> 正文
登录阅读全文

杂乱笔记

简介: QT代码中运行Linux命令 #include //QProcess::execute("echo 210 >/sys/class/backlight/pwm-backlight.

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

root@atlas7-arm:~# tty /dev/ttySiRF1

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

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

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

 

 因为文件指针使用的是标准流文件,因此我们可以不定义文件指针。
 接下来我们使用freopen()函数以只读方式r(read)打开输入文件slyar.in  { freopen("slyar.in", "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/cpuinfo
processor    : 0
vendor_id    : GenuineIntel
cpu family    : 6
model        : 42
model name    : Intel(R) Core(TM) i5-2320 CPU @ 3.00GHz
==========================================================================

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章