从今天开始学习UNIX系统,可用的文件I/O函数——打开文件、读文件、写文件等。5个函数:open、read、write、lseek以及close。不同缓冲长度对read和write函数的影响。
不带缓冲的I/O unbuffered I/O,与标准I/O函数相对照。每个read和write都调用内核中的一个系统调用。这些不是ISO C的组成部分,但是是POSIX.1和Single UNIX Specification的组成部分。
文件描述符
对于内核而言,所有打开的文件都通过文件描述符引用,它是一份非负数。
幻术0、1、2已经标准换,但是替换替换成符号常量STDIN_FILENO、STDOUT_FILENO和STTDERR_FILENO以提高可读性。都在头文件<unistd.h>中定义。
变换范围是0~OPEN_MAX-1。上限之前是10(即20个文件),目前很多系统为63个。
#include <fcntl.h>
int open(const char *path,int oflag,...);
int openat(int fd,const char *path,...);