基本功的修炼都是枯燥乏味的。但是好的基本功,能让你每一步都走得更踏实,走得更远。
冰冻三尺,非一日之寒。内功修炼,切莫急于求成。
apue是一本讲unix操作系统的神书,900多页,很厚,拿来垫显示器很稳(=。=)
概括来说,apue主要讲了以下内容

  • I/O
    • Advanced I/O
    • Standard I/O Library
    • Terminal I/O
  • File System
    • Files and Directories
    • System Data Files and Information
  • Process
    • Process Envinronment
    • Process Control
    • Process Relationships
    • Daemon Process
    • Signals
    • Thread
    • Thread Control
    • IPC
    • Advanced IPC
    • Network IPC

初看此书,感觉书中内容都是将一些Unix函数简单罗列,读起来很是无聊,根本看不进去。但是当你结合实际项目之后,才会发现当年的自己图样图那衣吾。

I/O

主要有以下五个非缓冲I/O

1
2
3
4
5
open
read
write
lseek
close

非缓冲的意思是,每调用一次函数,则直接调用一次系统内核

1
2
3
4
5
dup
fcntl
sync
fsync
ioctl

File Descriptors
文件描述符就是一个正整数。对于内核来说,每一个打开的文件,都对应一个文件描述符。当我们打开一个已经存在的文件或新建一个文件时,内核都会返回一个文件描述符,以供后续的操作。
为了方便起见,0对应标准输入进程,1对应标准输出进程,2对应标准错误。其常量STDIN_FILENO,STDOUT_FILENO, STDERR_FILENO定义在<unistd.h>

  1. 非阻塞I/O
  2. 记录锁
  3. I/O多路复用
  4. 异步I/O
    早期的UNIX因为不支持文件的部分锁,所以不能用于跑数据库应用。

协同锁
强制锁