UNIX环境下的C 对二进制流文件的读写有两种体系:
- fopen,fread,fwrite ;
- open, read, write;
fopen 系列是标准的C库函数;open系列是 POSIX 定义的,是UNIX系统里的system call。
文件操作不外乎 open
,close
,read
,write
,lseek
,从打开文件开始介绍
open/close
open
定义如下:
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
int open(const char *pathname, int flags);
int open(const char *pathname, int flags, mode_t mode);
- pathname:要打开的文件路径
- flags:对文件的操作权限设置还有其他的设置
O_RDONLY, O_WRONLY, O_RDWR 这三个设置是互斥的
- mode:八进制数,表示创建出的新的文件的操作权限,例如:0775
close
定义如下:
#include <unistd.h>
int close(int fd);
打开文件
通过open
打开一个存在的文件
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>
#include <unistd.h>
int main()
{
int fd = open("test.txt", O_RDONLY);// 打开一个文件
if(fd == -1)
{