C 应用
编译
GCC 用为Linux下的编译器,将c 代码编译生成elf 可执行文件,window MSVC 编译器将C 代码编译为exe文件
gcc hello.c -o hello ,将hello.c 编译生成hello 可执行程序。运行
在Linux 终端执行elf程序,比如将hello.c 编译为hello,在当前目录下直接执行 ./hello 即可。如果在系统路径中可以在任何路径下执行,比如 ls 指令,源程序在/bin/ls
whereis 指令可以查看指令的位置,比如 whereis ls
C库
C语言标准规定的库函数
glibc 是linux 平台下的标准C 库,基本函数库被标准化,统一并简化了应用程序开发.如 malloc,printf,strcpy,有些C库函数会调用系统接口.编译器特定的库函数
ltrace跟踪库调用
#ltrace ls ,其中调用c库函数 strlen(“./“)
Posix 标准
POSIX代表可移植操作系统接口。它是IEEE为维护操作系统之间的兼容性而指定的一系列标准。因此,任何遵循POSIX标准的软件都应该与遵循POSIX标准的其他操作系统兼容。Linux和类unix操作系统上使用的大多数工具的行为几乎相同。
简单地讲,符合POSIX标准的应用可以很好的兼容不同操作系统,这样加快应用的移植。
POSIX根据C语言定义了它的标准。因此,程序可以在源代码级别移植到其他操作系统。POSIX C API在许多方面为ANSI C标准增加了更多的功能,函数的完整描述在POSIX头文件中定义。
- 文件操作
- 进程、线程、共享内存和调度参数
- 网络
- 内存管理
- 正则表达式
Unix 环境编程
了解更多
这里主要涉及文件/IO 章节,主要访问Linux内核资源,对后面的内核开发对应。