1、lsof 列出当前系统打开文件的工具;
2、/dev/null文件,这是一个很特殊的文件,你写入的任何东西都会清空
a、我们可以把标准错误输出重定向到/dev/null,从而丢掉不想保存的错误信息
b、我们可以快速移除现有文件的数据而不用先删除文件在创建 cat /dev/null >> test
3、> 重定向,覆盖 >> 追加重定向,不覆盖
4、ulimit -n 查看默认文件描述符个数
a、可以修改默认文件描述符个数 临时::ulimit -Shn 65535
b、永久修改法:加入到开机自启动文件里面 /etc/rc.local 每次开机启动时生效
cat >> /etc/rc.local <<EOF ulimit -Shn 65535 EOF
c、待
5、gcc ---> the GUN Compiler Collection
g++ 是 gcc 的C++编译器
gcc 不会自动和C++库链接,手动链接 gcc *.o -lstd++
a、过程 编译 gcc *.cpp -c 链接 gcc *.o -lstd++
6、Linux下 动态链接库
gcc -fPIC -c file1.c // PIC(Position Indenpendet Code) 地址无关代码
gcc -fPIC -c file2.c
gcc -shared libXXX.so file1.o file2.o
// 程序运行时,被调用的动态链接库函数被安置在内存的每个地方,所有调用它的程序将指向这个代码段。因此,这 些地址必须是相对地址,而不是绝对地址。
7、LInux下 调试工具 gdb
gcc hello.c -g -o hello //-g 为了添加调试信息r(run)运行
br(break)设置断点
l(list)列出源码
info br(查看断点信息)
n单句执行(不进入函数)
c 继续运行
p 打印
bt 查看堆栈
8、进程与文件描述符/ 文件流
fd只是一个整数,在open时产生。起到一个索引的作用,进程通过PCB中的文件描述符表找到该fd所指向的文件指针
流返回的是一个FILE结构指针,FILE结构是包含有文件描述符的,FILE结构函数可以看作对fd直接操作的系统调的
封装,优点:带有I/O缓存