项目简介
本项目聚焦于牛客网Linux高并发服务器开发中Linux系统编程入门部分,着重展示C语言在Linux系统编程里的基础应用。内容涉及GCC编译、静态库与动态库的制作和使用、makefile编写、GDB调试、文件IO操作、虚拟地址空间、文件描述符、目录操作等。同时提供了如实现ls -l
命令、遍历整个目录等实践示例。
项目的主要特性和功能
- 编译与库管理:给出GCC编译命令示例,包含预编译、编译、汇编和生成可执行文件;支持制作和使用静态库与动态库,且介绍两者区别。
- 自动化构建:提供makefile使用说明,助力用户自动化编译。
- 调试功能:支持GDB调试,能进行设置参数、断点以及单步调试等操作。
- 文件与目录操作:涵盖标准C库和Linux系统IO函数的使用,像文件的打开、读写、属性获取等;支持目录的创建、重命名、遍历等操作。
- 文件描述符控制:提供dup和dup2函数控制文件描述符的示例,以及fcntl函数的使用。
安装使用步骤
编译程序
- 编译普通C文件,使用
gcc ***.c -o name
命令生成可执行文件。 - 制作静态库:
- 使用
gcc -c **.c
生成.o文件。 - 使用
ar rcs libxx.a **.o
将.o文件生成静态库文件。 - 使用
gcc main.c -o app -I./include -l calc -L./lib
链接静态库。
- 使用
- 制作动态库:
- 使用
gcc -c -fpic *.c
和gcc -shared *.o -o libcalc.so -I./include
生成动态库。 - 使用
gcc main.cpp -o app -I./include -l calc -L./lib
链接动态库。 - 若运行时找不到动态库,可临时设置环境变量
export LD_LIBRARY_PATH = $LD_LIBRARY_PATH:your_path
,或在~/.bashrc
或者~/.zshrc
中添加该行并执行source ~/.bashrc
。
- 使用
调试程序
在gcc编译时加入-g
参数以进行GDB调试,如gcc test.c -o test -g -Wall
,然后使用GDB命令进行调试操作,如设置参数、断点,单步调试等。
运行示例代码
对于自己实现ls -l
命令和遍历整个目录的代码,可在对应的代码目录下按照上述编译方法进行编译和运行。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】