int open(char* pathfilename,int flag,mode_t mode)
flag:指定的打开方式 O_RDONLY 只读、O_WRONLY 只写、O_RDWR 可读可写 O_CREAT 文件不存在则创建、 O_APPEND 追加写 O_TRUNC 清空写
mode: 如果使用了O_CREAT,则一定要通过mode参数设置文件权限信息,并且需要考虑文件默认的创建权限掩码的因素
文件描述符: open返回的文件操作句柄,是一个非负整数, --- 操作文件原理,是因为这个整数时内核中,文件信息描述数组的下标,通过这个下标就能找到这个文件从而对它进行操作
分配规则:最小未使用
重定向原理:将原本要写入一个文件的数据,转而写入到另一个文件中(并不修改代码中其它信息),将这个描述符在文件描述数组中对应的文件描述信息,改变为另一个文件,则实现了操作相同的文件服,但是操作的文件不同
int dup2(int oldfd,int newfd)-----将newfd重定向到oldfd,让这两个描述符都操作oldfd所操作的文件
文件描述符与文件流指针:
文件描述符:系统调用io接口的操作句柄
文件流指针:标准库调用io接口的操作句柄,文件流指针是一个FILE结构体,这个结构体中就封装了文件描述符