管窥C标准库

我觉得C语言是一个马甲,它的里面是体系结构,C标准库也是一个马甲,它的里面是操作系统内核。

Linux上glibc标准库libc6-dev包含457个头文件,而我只以自己记录过的31个头文件为基准来描述它,只能覆盖头文件的6.7%,所以只能说是管窥了。

  • arpa:早期的网络就叫arpa网,是为了向arpa致敬吗?
    • inet.h:ip地址形式之间的转化。
  • x86_64-linux-gnu/sys:关于系统调用
    • ipc.h:定义了System V IPC的函数ftok。
    • mman.h:内存映射管理
    • sem.h:SYS V信号量。
    • socket.h:网络插座
    • stat.h:设置文件的状态
    • time.h:设置时间
    • wait.h:wait相关的系统调用
  • assert:为程序增加诊断功能
  • crypt.h:数据加密
  • ctype.h:一些测试字符类别的函数
  • fcntl.h:文件操控
  • fnmatch.h:文件名匹配
  • getopt.h:获取函数参数
  • iconv.h:字符集转换
  • libgen.h:分解目录名
  • locale.h:语言环境管理
  • math.h:声明了一些数学函数和宏
  • poll.h:轮询等待文件描述符上的事件
  • pthread.h:线程管理
  • sched.h:管理调度器
  • search.h:查找
  • semaphore.h:管理信号量
  • setjmp.h:跳转
  • signal.h:处理信号
  • stdio.h:管理输入输出
  • stdlib.h:实用函数
  • string.h:管理字符串
  • strings.h:高级的字符串管理
  • termios.h:通用终端的接口
  • time.h:日期与时间处理
  • unistd.h:Unix标准,包含了符号常量的定义与大量系统调用的封装。
  • wchar.h:对宽字符的操作