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;
}
运行: