Linux系统下使用C语言进行文件系统IO操作
1打开文件
函数:int open(const char *,int flags); //打开一个已经存在的文件
int open(const char *,int flags,mode_t mode); //打开一个不存在的文件
头文件: #include<sys/types.h> #include<sys/stat.h> #include<fcntl.h> 参数: 1:将要打开的文件的路径及其文件名 2:文件的打开方式: 打开常用方式:O_RDONLY 只读方式打开 O_WRONLY 只写方式打开 O_RDWR 读写 O_CREAT 若文件不存在则创建 O_TRUNC 清空文件内容 O_APPEND 追加文件内容 通常使用(O_WRONLY | O_CREAT | O_TRUNC) 3:若要创建文件则要给予此文件一个访问权限,例如 0644 读写权限;0777 读写可执行权限 返回值:打开成功则返回文件描述符(也就是一个数组下标)
2读取文件
函数:ssize_t read(int fd,void *buf,size_t count);
头文件: #include<unistd.h> 参数1:待读取的文件的文件描述符 参数2:读取数据存储的buf 参数3:读取的字节数 返回值:成功:返回读取的字节数;失败:返回-1
3写入文件
函数:ssize_t write(int fd,const void *buf,size_t count);
头文件: #include <unistd.h> 参数1:待写入的文件的文件描述符 参数2:待写入的数据存储的buf 参数3:待写入的字节数 返回值:成功:返回写入的字节数,失败:返回-1
### 4关闭文件 #### 函数:int close(int fd); 参数1:所需要关闭的文件的文件描述符
###### 例如:创建一个文件并将将一段文字写入文件。
#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
int main(int argc
,char *argv
[])
{
int file
;
file
= open("1.txt",O_RDWR
| O_CREAT
| O_TRUNC
, 0644);
char M
[20] = {"薛定鄂的海豚"};
int n
= write(file
,M
,18);
printf("写入的字节数为:%d\n",n
);
close(file
);
return 0;
}
运行: