Linux系统编程之文件编程常用API回顾和文件编程一般步骤

目录

1.打开文件

2.创建文件

3.写入文件

4.读取文件

5.光标定位

 6.关闭文件

7.文件编程一般步骤


Linux系统提供了一些常用API如:

打开/创建 open/creat

读写 write /read

光标定位 Iseek

关闭 close

1.打开文件

参数说明

Pathname:要打开的文件名 (含路径,缺省为当前路径)
Flags:
O_RDONLY 只读打开            O_WRONLY:只写打开    O_RDWR 可读可写打开
当我们附带了权限后,打开的文件就只能按照这种权限来操作。

以上这三个常数中应当只指定一个。下列常数是可选择的:

        O_CREAT 若文件不存在则创建它。使用此选项时,需要同时说明第三个参数mode,用其说明该新文件的存取许可权限

        O_EXCL 如果同时指定了O_CREAT,而文件已经存在,则出错。
        O_APPEND 每次写时都加到文件的尾端。
        O_TRUNC 属性去打开文件时,如果这个文件中本来是有内容的,而且为只读或只写成功打开,则将其长度截短为0。
Mode:一定是在flags中使用了O_CREAT标志,mode记录待创建的文件的访问权限

 2.创建文件

3.写入文件

4.读取文件

5.光标定位

lseek():移动文件的光标,通常用lseek(fd,0,SEEK_END)获取文件长度
原型:int lseek(int fd, off_t offset, int whence);

返回值:调用成功返回光标偏移字节,调用失败返回-1

参数:

fd:文件描述符
off_t offset:偏移字节,0为不偏移,-a为往前偏移a个字节,b为往前偏移b个字节
int whence:光标位置

 6.关闭文件

7.文件编程一般步骤

 

1、在Linux中要操作一个文件,一般是先open打开一个文件,得到文件描述符,然后对文件进行读写操作(或其他操作),最后是close关闭文件即可。
2、强调一点:我们对文件进行操作时,一定要先打开文件,打开成功之后才能操作,如果打开失败,就不用进行后边的操作了,最后读写完成后,一定要关闭文件,否则会造成文件损坏。
3、文件平时是存放在块设备中的文件系统文件中的,我们把这种文件叫静态文件,当我们去open打开一个文件时,linux内核做的操作包括:内核在进程建立一个打开文件的数据结构,记录下我们打开的这个文件;内核在内存中申请一段内存,并且将静态文件的内容从块设备中读取到内核中特定地址管理存放(叫动态文件)。
4、打开文件以后,以后对这个文件的读写提作,都是针对内存中的这一份动态文件的,而并不是针对静态文件的。当然我们对动态文件进行读写以后,此时内存中动态文件和块设备文件中的静态文件就不同步了,当我们close关闭动态文件时,close内部内核将内存中的动态文件的内容去更新(同步)块设备中的静态文件
5、为什么这么设计,不直接对块设备直接操作?
因为块设备本身读写非常不灵活,是按块读写的,而内存是按字节单位操作的,而且可以随机操作,很灵活。

猜你喜欢

转载自blog.csdn.net/m0_74712453/article/details/132521950