1)open函数:以特定的方式打开一个文件;
头文件:sys/type.h sys/stat.h fcntl.h
返回值:错误则返回-1,正确则返回文件描述符(int类型,范围为3~1023,文件的标号)
函数原型:int open(const char *pathname,int flags)
int open(const char *pathname,int flags,mode_t mode)
flag必选项:O_WRONLY,O_RDONLY,O_RDWR;
flag可选项:O_APPEND(追加),O_CREAT(创建,需要指定文件的权限,创建的文件权限=设定的权限- umask),O_EXCL(如果文件存在且指定O_CREAT,则出错), O_TRUNC(文件存在截断为0),O_NONBLOCK;
2)close函数:关闭文件
头文件:unistd.h
返回值:错误(-1),正确(0);
函数原型:int close(int fd);
fd:文件描述符;
3)read函数:从文件中读取数据到指定数据缓冲区
头文件:unistd.h
返回值:文件读完(0),读取的字符串(>0),读取失败(-1)
函数原型:ssize_t read(int fd,void *buffer,size_t count);
fd:文件描述符;buffer:数据缓存区;count:读取的数据大小;
4)write函数:将数据到指定文件中
头文件:unistd.h
返回值:写入的数据大仙(>0),写入失败(-1)
函数原型:ssize_t read(int fd,const void *buffer,size_t count);
fd:文件描述符;buffer:待写入的数据;count:读取的数据大小;
5)lseek函数:修改文件的读写位置,应用于获取文件长度,拓展文件空间(其后必须接一个写入函数)
头文件:sys/type.h unistd.h
返回:如果成功返回距离起始位置的偏移量,失败返回-1;
函数原型:off_t lseek(int fd,off_t offset,int whence);
fd:文件描述符,offset:偏移量,whence:
SEEK_SET(偏移到offset地方,相对于文件头)
SEEK_CUR(偏移到当前位置+offset)
SEEK_END(偏移到文件尾+offset);