对文件的操作有两种方式:文件描述字、流
任何运行ANSI_C的系统均支持流,但不是所有系统都支持文件描述字,一般情况下坚持使用流而不是文件描述字
1、文件描述字函数多数是系统调用(系统调用是操作系统提供的内核服务,当程序进行系统调用时会自动陷入内核态),它们提供底层基本的输入输出操作接口(低级输入输出)
2、流函数建立在文件描述字之上,通过文件描述字实现,给程序提供了更高一级的输入输出接口(标准输入输出)
表示流的数据类型是FILE(FILE是系统定义的数据结构)
文件描述字的类型是int
预先定义并自动打开的三个标准流:stdin(标准输入)、stdout(标准输出)、stderr(错误输出)
预先定义并自动打开的三种文件描述字:0、1、2,分别对应STDIN_FILENO(标准输入)、STDOUT_FILENO(标准输出)、STDERR_FILENO(标准错误输出)
以"/"开头的路径名是绝对路径名,其他路径名称为相对路径名
NOFILE:用户可以打开的最大文件数的限制
NAME_MAX:文件名的最大字符个数