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内核资源,对后面的内核开发对应。