(用来记录学习《unix环境高级编程》一书的1经历,随着学习的深入会不断补充)
环境搭建: 首先得有一个带有gcc编译器的linux系统,然后就是新手很容易碰到的一个的坑,此书的几乎所有的程序均包含"apue.h"这个头文件,但是这个头文件并不是标准库所包含的,所以需要自己编译apue.se这个程序,并将生成的头文件和库文件拷贝到系统中然后在编译程序时指定链接文件即可(用-l参数)
具体:(找时间补充,网上这方面讲的挺详细的)
ISO C标准定义的头文件:
<assert.h> 验证程序断言
<complex.h> 复数算术运算支持
<ctype.h> 字符分类和映射支持
<errno.h> 出错码
<fenv.h> 浮点环境
<float.h> 浮点常量与特性
<inttypes.h> 整型格式转换
<iso646.h> 赋值,关系,以及一元操作符宏
<limits.h> 实现常量
<locale.h> 本地化类别及相关定义
<math.h> 数学函数,类型声明及常量
<setjmp.h> 非局部goto
<signal.h> 信号
<stdarg.h> 可变长度参数表
<stdbool.h> 布尔类型和值
<stddef.h> 标准定义
<stdint.h> 整型
<stdio.h> 标准IO库
<stdlib.h> 实用函数
<string.h> 字符串操作
<tgmath.h> 通用类型数学宏
<time.h> 时间与日期
<wchar.h> 扩充的多字节与宽字符支持
<wctype.h> 宽字符分类与映射支持
posix c(作为iso c的超集包含iso c的所有库函数)
<aio.h> 异步IO
<cpio.h> cpio归档值
<dirent.h> 目录项
<dlfcn.h> 动态链接
<fctnl.h> 文件控制
<fnmatch.h> 文件名匹配选项
<glob.h> 路径名匹配类型
<grp.h> 组文件
<iconv.h> 代码集变换实用程序
<langinfo.h> 语言信息常量
<monetary.h> 货币类型与函数
<netdb.h> 网络数据库操作
<nl_types.h> 信息类
<poll.h> 投票函数
<pthread.h> 线程
<pwd.h> 口令文件
<regex.h> 正则表达式
<sched.h> 执行调度
<semaphore.h> 信号量
<strings.h> 字符串操作
<tar.h> tar归档值
<termios.h> 终端IO
<unistd.h> 符号常量
<wordexp.h> 字扩充类型
<arpa/inet.h> 因特网定义
<net/if.h> 套接字本地接口
<netinet/in.h> 因特网地址族
<netinet/tcp.h> 传输控制协议定义
<sys/mman.h> 存储管理声明
<sys/select.h> select函数
<sys/socket.h> 套接字接口
<sys/stat.h> 文件状态
<sys/statvfs.h> 文件系统信息
<sys/times.h> 进程时间
<sys/types.h> 基本系统数据类型
<sys/un.h> unix域套接字定义
<sys/utsname.h> 系统名
<sys/wait.h> 进程控制
<fmtmsg.h> 信息显示结构
<ftw.h> 文件树漫游
<libgen.h> 路径名管理函数
<ndbm.h> 数据库操作
<search.h> 搜索表
<syslog.h> 系统出错日志记录
<utmps.h> 用户帐号数据库
<sys/ipc.h> IPC
<sys/msg.h> XSI信息队列
<sys/resource.h> 资源操作
<sys/sem.h> XSI信号量
<sys/shm.h> XSI共享存储
<sys/time.h> 时间类型
<sys/uio.h> 矢量IO操作
<mqueue.h> 信息队列
<spawn.h> 实时spawn接口
SUS C (作为POSIX.1标准的一个超集,定义了一些符加接口的扩展了POSIX规范提供的功能(接口多以_XOPEN开头))
编译器针对不同系统的三种限制:
编译时限制(头文件)
与文件或目录无关的运行时限制(sysconf()函数)
与文件或目录有关的运行时限制(pathconf函数和fpathconf函数)
当标准之间出现冲突时POSIX服从ISO C标准