把src.txt 的文本追加到dst.txt 后面
1
cat src.txt >> dst.txt
linux 单线程所能支持的最大文件处理数量
1
cat /proc/sys/fs/file-max
设置:例如设置成8192
1
echo 8192 > /proc/sys/fs/file-max
C++关键字总结
mutable 与 const
mutable的中文意思是“可变的,易变的”,跟constant(既C++中的const)是反义词。
1、const所修饰的函数中,要有编译器负责保护类中的成员函数不被修改;而相对地,mutable则是用来修饰类的成员变量的,让该变量在const修饰的常成员函数中可以被修改
2、const修饰的函数只能是类的成员函数(保护this指针不被恶意修改);mutable修饰的变量只能是类的成员变量。
3、在C++中,mutable也是为了突破const的限制而设置的。被mutable修饰的变量,将永远处于可变的状态,即使在一个const修饰的常成员函数中。
private
private可以保护不被类的成员不被外界调用,析构函数通常情况是public的,这样外部调用的时候可以用于
释放内存,如果一个析构函数被private修饰,那么会出现编译报错,因为编译器不能调用被private保护的析构函数。
引用
[1] https://blog.csdn.net/weixin_42067873/article/details/96107750
Q&A
Interview 问题收集
memcopy 与 memmove谁更安全?
memmove 更安全,memove 可以正确处理地址重叠的部分。
const 与 define 在定义常量的区别?
const 申明的常量会进行类型检查,define只是替换,不做类型检查。
static 关键字的作用?
static申明的类变量属于类,不属于某个对象,是所有类共享。
Cache和主存内存一致性
- write-through 写操作是数据写入cache又写入内存。
- write-back 写操作只是在数据被踢出cache时才写入内存。
指令调度的基本流程
- 构建DAG图,对DAG图进行处理
- 初始化,包括调度策略,DAG图,调度器队列;
- 选取节点进行调度,pickNode方法在自定义调度策略中被重写,GenericScheduler::pickNode()获取RegionPolicy中设置的次序>进行遍历,pickNode方法返回一个SUnit(Scheduling unit),这是调度图中的一个节点表示,包含节点的一系列属性和状态,譬如isPending,isAvailable,isScheduled等用于记录节点状态的信息;调试时可以通过SUnit.getInstr()->dump()打印出节点中指令的信息。
- scheduleMI,移动指令和更新寄存器压力信息
- 更新调度状态,将SU->isScheduled 设为 true。
std::cout 与 std::cerr 的区别?
std::cerr不需要被发送缓冲区,可以直接显示输出,std::cout 为了减少刷屏的次数,设置了缓冲区,这样在遇到std::endl 或者”\n”>时会调用os.flush把缓冲区内容输出到显示器上进行显示。