C语音-文件IO
文章平均质量分 89
该专栏主要是对文件操作 API 做一个解释与讲解,文件操作一直以来是作为嵌入式程序员必要掌握的一个操作,因为在 linux 系统中,万物皆文件,所以掌握好文件操作非常重要
九月丫
爱好编程,爱好生活
展开
-
zlib 库的压缩解压缩操作
linux 下的 zlib 库安装zlib是通用的压缩库,提供了一套in-memory压缩和解压函数,并能检测解压出来的数据的完整性。zlib也支持读写gzip (.gz)格式的文件。linux 下的 zlib 库安装wgethttpcdmakemakeinstall数据压缩 API(compress)compress 函数将 source 缓冲区中的内容压缩到 dest 缓冲区。sourceLen 表示 source 缓冲区的大小(以字节计)。原创 2023-07-19 09:34:52 · 7759 阅读 · 0 评论 -
linux-I/O 多路复用
IO 多路复用在 Linux 下包括了三种,select、poll、epoll,抽象来看,他们功能是类似的,但具体细节各有不同:首先都会对一组文件描述符进行相关事件的注册,然后阻塞等待某些事件的发生或等待超时。ET(边缘触发)模式下,在它检测到有 I/O 事件时,通过 epoll_wait 调用会得到有事件通知的文件描述符,对于每一个被通知的文件描述符,如可读,则必须将该文件描述符一直读到空,让 errno 返回 EAGAIN 为止,否则下次的 epoll_wait 不会返回余下的数据,会丢掉事件。原创 2023-07-19 09:07:27 · 240 阅读 · 0 评论 -
标准IO接口
标准 IO 是带缓冲区的 IO,读和写都是针对于缓冲区的,并不是每一次读写都会同步到硬件,有时候在多线程编程的时候就会产生不可预测的结果,通过 fflush 函数可以把手动把缓冲区的内容同步到硬件,例如 printf()打印函数如果不使用\n 的话它是会记录到输出缓冲流(stdout)中的,直到进程退出或缓冲区满了才会将缓冲区数据同步到屏幕文件中,同理,文件的读写操作也是先保存在文件缓冲流中的。所以,若使用文本方式打开二进制文件时,就很容易出现文件读不完整,或內容不对的错误。如果发生错误,返回一个空指针。原创 2023-07-12 14:34:10 · 133 阅读 · 0 评论 -
linux动态库文件操作接口
可用于测试库是否已加载(dlopen()返回 NULL 说明未加载,否则说明已加载),也可用于改变已加载库的 flag,如:先前加载库的 flag 为RTLD_LOCAL,用 dlopen(RTLD_NOLOAD|RTLD_GLOBAL)后 flag 将变成 RTLD_GLOBAL。如果从未引用该符号,则永远不会解析它,在 dlopen 返回前,对于动态库中的未定义的符号不执行解析(只对函数引用有效,对于变量引用总是立即解析)。待查找的符号名,可以是动态库中的变量,结构体,类,函数。原创 2023-07-07 16:10:44 · 267 阅读 · 0 评论 -
linux系统IO文件操作接口
如果 buf 指向的空间不够大(当前目录的字符串长度超过了 buf 指向的空间的可用长度),getwd 可能会访问后面的内存空间,造成内存的非法访问。是用来获取指定的文件的属性信息的,获取到的属性信息保存到 statbuf 指向的结构体中(statbuf 一定要指向一个可用的空间)。是用来获取指定的文件的属性信息的,获取到的属性信息保存到 statbuf 指向的结构体中(statbuf 一定要指向一个可用的空间)。从指定的文件中(文件描述符指定的文件)读取 count 个字节放到 buf 指向的内存中。原创 2023-07-05 09:16:00 · 80 阅读 · 0 评论 -
linux系统目录操作接口
linux 中使用 DIR 结构体来描述一个已经打开的目录,至于结构体中有什么具体的内容,我们不需要关心,只需要知道 DIR 类型的指针可以表示一个已经打开的目录就可以了。读取 DIR 指向的目录中的文件项,通过返回值返回出文件信息,每一次调用 readdir都会让 DIR 指针指向该目录的下一个文件的位置。打开文件描述符为 fd 的目录,返回一个 DIR 类型指针,DIR 是用来描述打开目录信息的结构体。打开名为 name 的目录,返回一个 DIR 类型指针,DIR 是用来描述打开目录信息的结构体。原创 2023-07-06 17:34:50 · 324 阅读 · 0 评论 -
linux 基础系统 I/O 接口介绍-打开/关闭文件函数
S_IRWXU 00700 用户(文件所有者)具有读取、写入和执行权限S_IRUSR 00400 用户具有读取权限S_IWUSR 00200 用户具有写入权限S_IXUSR 00100 用户具有可执行权限S_IRWXG 00070 组具有读取、写入和执行权限S_IRGRP 00040 组具有读取权限S_IWGRP 00020 组具有写入权限S_IXGRP 00010 组具有执行权限S_IRWXO 00007 其他人具有读取、写入和执行权限S_IROTH 00004 其他人具有读取权限。原创 2023-06-12 20:09:47 · 369 阅读 · 0 评论 -
linux文件操作概述
虚拟文件系统虚拟文件系统一个操作系统可以支持多种底层不同的文件系统(比如 NTFS, FAT, ext3, ext4),为了给内核和用户进程提供统一的文件系统视图,Linux 在用户进程和底层文件系统之间加入了一个抽象层,即虚拟文件系统(Virtual File System, VFS),进程所有的文件操作都通过 VFS,由 VFS 来适配各种底层不同的文件系统,完成实际的文件操作。原创 2023-06-08 19:38:18 · 61 阅读 · 0 评论