文件系统
- 所有文件的起点是根目录 root
- 而目录(directory)是一个 包含目录项的文件,每个目录项都包含一个文件名以及该文件属性信息
- 例如 文件类型(普通文件还是目录)、文件大小、文件所有者、文件权限(其他用户是否可以访问该文件)
工作目录
- 每一个进程都有一个工作目录(working directory),有时候称其为当前工作目录(current working directory)。所有相对路径都从工作目录开始解释。
- 进程可以用 chdir函数改变其工作目录。
shell
- shell 本质上就是一个 命令行解释器
- 作用:读取用户输入,执行命令
输入与输出
- 文件描述符 (file descriptor)
- 形式:通常是一个 小的非负整数
- 作用:用以标识一个特定进程正在访问的文件
- 返回:当内核打开一个现有文件或者创建一个新文件时,就会返回一个文件描述符
- 标准输入(standard input)、标准输出(standard output)、标准错误(standard error)
- shell运行一个新程序时,都会为新程序打开三个文件描述符标准输入,标准输出,标准错误,若是不做特殊处理,三个描述符都链接向终端 。
- 例如:将ls命令重定向到 file.list 文件中
ls > file.list
- 不带缓冲的I/O
- 以下函数提供不带缓冲的I/O:
- open、read、write、lseek、close(他们也都使用文件描述符)
标准I/O
- 作用:为那些不带缓冲区的 I/O函数 提供了一个带缓冲的接口
- 例如:我们最熟悉的标准 I/O函数 是printf(凡是用到这个函数,都会include <stdio.h>文件,这个文件包含在 apue.h文件中,而 aque.h文件包括了所有标准 I/O函数 原型)。