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

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

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、为什么这么设计,不直接对块设备直接操作?

因为块设备本身读写非常不灵活,是按块读写的,而内存是按字节单位操作的,而且可以随机操作,很灵活。

相关文章
|
11天前
|
存储 缓存 监控
Linux缓存管理:如何安全地清理系统缓存
在Linux系统中,内存管理至关重要。本文详细介绍了如何安全地清理系统缓存,特别是通过使用`/proc/sys/vm/drop_caches`接口。内容包括清理缓存的原因、步骤、注意事项和最佳实践,帮助你在必要时优化系统性能。
132 78
|
14天前
|
Linux Shell 网络安全
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
本指南介绍如何利用 HTA 文件和 Metasploit 框架进行渗透测试。通过创建反向 shell、生成 HTA 文件、设置 HTTP 服务器和发送文件,最终实现对目标系统的控制。适用于教育目的,需合法授权。
52 9
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
|
10天前
|
存储 监控 Linux
嵌入式Linux系统编程 — 5.3 times、clock函数获取进程时间
在嵌入式Linux系统编程中,`times`和 `clock`函数是获取进程时间的两个重要工具。`times`函数提供了更详细的进程和子进程时间信息,而 `clock`函数则提供了更简单的处理器时间获取方法。根据具体需求选择合适的函数,可以更有效地进行性能分析和资源管理。通过本文的介绍,希望能帮助您更好地理解和使用这两个函数,提高嵌入式系统编程的效率和效果。
65 13
|
14天前
|
JSON API 数据安全/隐私保护
淘宝评论API接口操作步骤详解,代码示例参考
淘宝评论API接口是淘宝开放平台提供的一项服务,通过该接口,开发者可以访问商品的用户评价和评论。这些评论通常包括评分、文字描述、图片或视频等内容。商家可以利用这些信息更好地了解消费者的需求和偏好,优化产品和服务。同时,消费者也可以从这些评论中获得准确的购买参考,做出更明智的购买决策。
|
1月前
|
负载均衡 安全 API
小红书商品详情API接口获取步骤
获取小红书商品详情API接口需先注册账号并实名认证,阅读API文档后,通过编程语言调用API,构建请求参数,处理返回数据。确保应用支持高并发,遵守安全规范,申请API权限,查阅接口文档,进行开发调试。
|
11天前
|
Ubuntu Linux C++
Win10系统上直接使用linux子系统教程(仅需五步!超简单,快速上手)
本文介绍了如何在Windows 10上安装并使用Linux子系统。首先,通过应用商店安装Windows Terminal和Linux系统(如Ubuntu)。接着,在控制面板中启用“适用于Linux的Windows子系统”并重启电脑。最后,在Windows Terminal中选择安装的Linux系统即可开始使用。文中还提供了注意事项和进一步配置的链接。
31 0
|
22天前
|
存储 Oracle 安全
服务器数据恢复—LINUX系统删除/格式化的数据恢复流程
Linux操作系统是世界上流行的操作系统之一,被广泛用于服务器、个人电脑、移动设备和嵌入式系统。Linux系统下数据被误删除或者误格式化的问题非常普遍。下面北亚企安数据恢复工程师简单聊一下基于linux的文件系统(EXT2/EXT3/EXT4/Reiserfs/Xfs) 下删除或者格式化的数据恢复流程和可行性。
|
7月前
|
NoSQL Unix Linux
Linux下的系统编程——守护进程、线程(十二)
Linux下的系统编程——守护进程、线程(十二)
83 0
Linux下的系统编程——守护进程、线程(十二)
|
7月前
|
存储 Linux Shell
Linux系统编程(守护进程)
Linux系统编程(守护进程)
84 0
|
NoSQL Ubuntu Unix
linux系统编程(十)守护进程、线程(上)
linux系统编程(十)守护进程、线程
280 0
linux系统编程(十)守护进程、线程(上)