1. 文件
- link系统调用创建硬链接,symlink系统调用用于创建软链接。硬链接相当于强指针,软链接相当于弱指针。
- 标准库IO接口带输入输出缓冲,可以减少系统调用次数,提高效率。而linux系统调用则没有缓冲,可以直接操作设备。
- linux单个进程打开的文件描述符有个数限制。
2. 错误处理
- errno用于记录系统调用的错误码。它是线程本地变量,POSIX规定其必须是线程安全的,linux中正是如此。
- strerror用于将errno转为字符串。
- perror用于向标准输出中打印错误消息,并添加消息前缀。
3. 命令行参数解析
参数列表
默认情况下,程序只支持传参数列表。参数列表中的参数是和参数位置绑定的,程序只能通过索引位置读取对应位置的参数值,这种普通的传参方式不灵活。例如程序使用者想要跳过对某个参数的设置。
基于选项的参数
选项传参方式有很多种,POSIX标准的传参语法为:
短参数形式:程序 -选项 [选项参数] … [参数] …
长参数形式:程序 --选项 [选项参数] … [参数]…
POSIX标准把程序参数,设计为三种类型。一种是选项,一种是选项值,一种是参数。
选项及选项值,其实就是键值对,所有参数加起来,其实就是一个键值表。
而
短参数形式,选项只能是单个字符,使用getopt接口解析。
长参数形式,选项可以是单个字符,也可以是一个字符串,使用getopt_long接口解析。
4. Shell
- 使用Shell启动程序,程序修改环境变量,并不会影响到Shell的环境变量!它们是两个进程。
5. 进程
- 进程优先级值越小,优先级越高,范围是-20~19,默认为0。