Linux 文件编程
一、文件
1、文件编程概述
2、文件打开及创建
3、文件写入操作编程
4、文件读取操作
5、文件光标移动操作
6、文件的创建及关闭
7、文件操作原理简述
8、标准c库对文件操作引入
9、标准c库打开、创建文件、读写文件、光标移动
一、文件
1、文件编程概述
文件编程关心的是如何用代码操作文件,实现文件创建、打开、编辑等自动化执行。
操作系统提供了一系列的API:
如:Linux系统:
打开:open
读写:read/write
光标定位:lseek
关闭:close
2、文件打开及创建
打开文件原理描述:
打开这个文件时linux内核都会建立一个结构体来管理这些文件并返回一个文件描述符(是一个小的非负整数),这个描述符它会指向内核里面的结构体,起到一个索引的作用,后面的write/read(读、写)操作都是通过文件描述符来对具体文件进行操作。
打开用open函数,创建用creat函数。
代码如下:
#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:可写可读打开
当我们附带了权限后,打开的文件就只能按照这种权限操作。
以上这三种常数中应当只指定一个,下列场数是可选择的:
O_CREAT:若文件不存在则创建它,使用此选项时,需要同时说明第三个参数mode,用其说明该新文件的存取许可权限。
O_EXCL:如果同时指定了O_CREAT,而文件已经存在则出错。用来判断文件是否存在,出错指的是返回-1。
O_APPEND:加上这个每次写入内容时都加到文件的尾端,否则会在头开始写,会把原来的内容覆盖掉一部分。
O_TRUNC:打开文件时,如果这个文件中本来是有内容的,而且为只读或只写成功打开的,则将其长度截短为0(将内容清空)。
Mode:一定是在flags中使用了O_CREAT标志,mode记录待创建的文件的访问权限。
-:代表了普通文件
r:代表了可读 数字表示是4
w:代表了可写 数字表示是2
x:代表了可执行 数字表示是 1
这些权限就是mode赋予的,如:0600表示的就是可读可写,6代表的就是4+2,这是给文件所有者的权限。
3、文件写入操作编程