linux下保存日志文件和屏幕录制小技巧 linux下保存日志文件和屏幕录制小技巧背景1, 在linux环境下,做程序开发,时常需要运行程序,监测运行状态,以便发现异常错误;时常遇到一个程序可能要运行数十小时才能重现一个bug,靠人工实时监测不现实;需要将程序运行过程打印信息记录到日志文件中,以便后期查看验证。2, 在linux环境下,安装软件,想要将安装过程记录下来,以便指导其他人安装,需要做录屏操作。需求分析1,记录程序运行输出文件还是录制软件安装过程,本质上,都是想要录制终端的操作。解决方案1, 录制linux终端的操作可以使用
并列的字符串被连接成新的字符串 并列字符串被连接成新的字符串在分隔符“,”间的多个字符串分隔符间的多个字符串属于并列关系,在翻译阶段时,多个并列的字符串会被连接到一起,形成新的字符串;c++标准文档引用:String literals placed side-by-side are concatenated at translation phase 6 (after the preprocessor). That is, "Hello," " world!" yields the (single) string "Hel
VMware centos 7 图形界面的分辨率和终端字体大小设置 1,centos 7 图形界面的分辨率设置centos 7窗口打开设置界面Applications–>System Tools–>Settings在设置窗口界面打开设备设置,点击显示设置,选择适合自己系统的分辨率设置,即可完成分辨率设置Devices–>Display–>Resolution2, 终端字体大小设置打开终端的偏好设置界面Edit --> Preferences在偏好设置界面设置字体以及字体大小,至此,完成
编译原理-第一章-引论 编译原理第一章 引论1,概念简介(1) 编译器:一个编译器就是一个程序,它可以阅读以某一种语言(源语言)编写的程序,并把该程序翻译成为一个等价的、用另一种语言(目标语言)编写的程序。2,一个编译器的结构2.1 分析与综合(1)编译器把源程序映射为在语义上等价的目标程序,映射过程由两个部分组成:分析部分和综合部分。(2)分析部分(analysis)把源程序分解成为多个组成要素,并在这些要素之上加上语法结构,然后,创建该源程序的一个中间表示。 分析部分还会收集有关源程序的信息,并把信息存放在
flex与bison编译 flex与bison编译1,flex编译生成头文件和源文件[sbinhuang@fengyi test]$ flex --header-file=flex_calculator.hpp -o flex_calculator.cpp --c++ calculator_example.l其中,–header-file 指定生成头文件名-o 指定生成源文件名–c++ 指定生成c++代码,c代码则无需指定;最后指定flex源文件注意:--c++ 选项存在bug,生成的fl
centos7下安装flex,bison centos7下安装flex,bison1,修改镜像源为国内镜像源,比如阿里云(1)首先备份系统自带yum源配置文件/etc/yum.repos.d/CentOS-Base.repo[root@fengyi flex]# cp /etc/yum.repos.d/CentOS-Base.repo /home/fengyi/Destop(2)进入yum源配置文件所在的文件夹[root@fengyi flex]# cd /etc/yum.repos.d/(3)下载阿里云源文件作为新的yum源配置文
宏定义(define)和可变参数函数(variable arguments) 宏定义(define)和可变参数函数(variable arguments)1,宏定义(define)宏定义是在编译时对程序进行文本替换,在宏定义替换过程中,只有字符串替换操作,没有运算操作宏定义分两种,一是普通的无参数宏定义;二是带实参的宏定义;(1) 无参数宏定义#define 宏名(标识符) 替换的文本范例:#define PI 3.14double i = PI; --> 编译时,替换 double i = 3.14;#define N 5#def
shell read读取文件最后一行数据缺失处理 1,read 读取文件(1) read按行读取文件(2)read读取文件,若文件最后一行不带有换行符’’,则最后一行读取后,不处理,跳出while循环;(3)判断读取文件的最后一行是否有内容,有内容则处理;[[ -n ${Line} ]]2,范例while read Line || [[ -n ${Line} ]]do echo ${Line} >> otherfiledone < fileName复制代码...
makefile简单使用 Makefile2020.9.111,makefile规则三要素目标,依赖项,命令2,自动变量<依赖目标中的第一个目标名字,如果依赖目标是以模式(< 依赖目标中的第一个目标名字,如果依赖目标是以模式(%)定义的,那么<依赖目标中的第一个目标名字,如果依赖目标是以模式(<将是符合模式的一系列的文件集。 注意,其是一个一个取出来的$@ 规则中的目标$^ 规则中的所有依赖3,常用变量名称CC 即gccAPPFLAGS 预处理时使用的选项CFLAGS 编译时
gcc(g++)编译器版本不同导致的报错 gcc(g++)编译器版本不同导致的报错# 2020.10.131,查看编译器版本信息/* linux 环境下 */gcc --versiong++ --version2,查看库中使用的默写变量或参数未定义报错信息举例:./precompiler-linux:/lib64/libc.so.6:version 'GLIBC_2.14' not found (required by ./precompiler-linux)/* linux 环境下 *//* 查看报错库的描述信息,确定
04 c++ 类数据成员的地址和类对象数据成员的地址 2020年10月4日1,类数据成员和类对象数据成员地址的区别(1) 类定义是一种类型声明,存在于代码块中,并没有分配内存空间;对类的数据成员取地址,得到的是类的数据成员在类内的相对偏移量;(2) 类的对象是类的实例化,分配内存空间给实例化对象使用,类的对象的数据成员取地址,得到的是类的对象的数据成员在内存空间的实际地址;#include <iostream>#include <cstdio>using namespace std;class A{public:
c++函数参数默认值设置 c++函数参数默认值设置1,函数参数默认值在函数声明的参数列表上定义,函数定义不变;#include <iostream>using namespace std;int add(int a = 0, int b = 0, int c = 0);int main(){ std::cout << add(1, 2, 3) << std::endl; getchar(); return 0;}int add(int a, int b, int c)