2019年3月 发布的文章

Linux系统函数

Linux系统函数C库IO函数工作流程FILE*文件描述符通过文件描述符找到磁盘文件的位置文件读写位置指针文件打开之后会有一个文件指针指向文件起始位置IO缓冲区为什么会有缓冲区因为访问机械硬盘速度会很慢寻道是毫秒级的而内存读写速度是纳秒级别的所以在内存中提供缓冲区,减少磁盘访问次数什么时候把缓冲区(内存中)的数据刷到硬盘上fflush刷新缓冲区缓冲区已...

Makefile的编写

Makefile的编写Makefile的命名MakefilemakefileMakefile的规则规则中的三要素:目标,依赖,命令目标:依赖条件缩进 命令Makefile学习vim makefile app:main.c add.c sub.c mul.c gcc main.c add.c sub.c mul.c -o app:wq mak...

GDB调试

GDB调试编译携带调试信息的可执行程序gcc编译时加上-g参数 gcc *.c -o myapp -g 因为携带调试信息,带-g参数生成的可执行文件体积会比不带-g参数的大,发布应用的时候一般取消—g参数生成可执行程序。 进入调试 gdb 带-g参数生成的可执行文件使用gdb调试gdb调试start 只执行一步next(n) 继续执行 ...

静态库与动态库的制作与使用

静态库的制作与使用静态库的制作命名规则lib + 库的名字 + .alibmytest.a制作步骤生成对应的.o文件 --.c -->.o -c参数将生成的.o文件打包 ar工具 ar rcs 生成静态库的名字(libMytest.a) 生成的所有的.ogcc *.c -c -I ../include/ 头文件在include ar ...

GCC编译流程

指定头文件目录gcc xx.c -I 头文件路径 -o 生成可执行程序名指定宏gcc xx.c -o 生成可执行程序名 -D 宏名优化程序gcc xx.c -o 生成可执行程序名 -O[0-3] 分为三个等级 0代表不优化输出警告信息gcc xx.c -o 可执行程序名 -Wall添加调试信息gdbgcc xx.c -o 可执行程序名 -g