Linux系统提供常用API
1.open
int open(const char* filename,int flag,/*int mode*/)
fliename文件路径 flag 标志 mode 权限 (0600)
Flag: O_CREAT -> 文件不存在时创建文件
O_APPEND -> 写文件时加到文件的尾部,不会把之前写的内容
O_RDONLY -> 仅可读
O_WRONLY -> 仅可写
O_RDWR -> 可读可写。
O_TRUNC-> 截断,截掉文件原来内容
当使用了O_CREAT时需要加上mode参数,返回值<0文件打开失败
2.read
int read(int fd,void *buf,size_t size)
fd 文件描述符 *buf 写入的起始位置 size 读的长度
读取成功返回读取的字节数,失败返回-1
3.write
int write(int fd,void *buf,size_t size)
fd 文件描述符 *buf 读取的起始位置 size 写的长度
写入成功返回写入的字节数,失败返回-1
4.lseek
int lseek(int fd,int size int flag)
移动读写偏移量
fd 文件描述符 size 偏移长度 flag光标位置
flag: SEEK_SET 表示开始位置
SEEK_CUR 表示现在位置
SEEK_END 表示尾端位置
成功返回文件指针到头的字节数,失败返回-1
5.close
int close(int fd)
关闭打开的文件
成功返回0 失败返回-1
6.creat
Int creat(const char* filename,int mode)
filename 文件路径 mode权限
mode: S_IRUSR(代表数字为4) -> 可读 4
S_IWUSR(代表数字为2) -> 可写 2
S_IXUSR(代表数字为1) -> 可执行 1
S_IRWXU(代表数字为7) -> 可读,可写,可执行 7
0 标准输入
1 标准输出
2 标准错误
C标准库文件操作函数:
1.fopen
FILE* fopen(const char* filename,const char* mode);
mode :w+ w r r+ a(追加)
2.fclose
.int fclose(FILE* stream);
文件描述符 stream
3.fwrite
size_t fwrite( const void *buffer, size_t size, size_t count, FILE *stream );
第一个参数buffer表示我们要输出的数据的地址
第二参数size是我们要输出的数据大小
第三个参数是count是我们要输入次数
第四个参数则是我们要将数据输入到的文件
4.fread
size_t fread( void *buffer, size_t size, size_t count, FILE *stream );
第一个参数buffer表示我们要接收的数据的地址
第二参数size是我们要接收的数据大小
第三个参数是count是我们要接收次数
第四个参数则是我们要将数据输入到的buffer的文件。
5. fgetc
int fgetc( FILE *stream )
stream代表将要读取字符的文件
6. fputc
int fputc( int c, FILE *stream )
c代表我们将要存入的字符,stream是我们存放 c 的文件。
7.fseek
int fseek(FILE *stream, long offset, int fromwhere);
与lseek用法相同
8.feof
feof(fd)
应用于当文件读取结束的时候,判断是读取失败结束,还是遇到文件尾结束
如果有,返回0;如果没有,返回非0