当前位置: 首页 > news >正文

linux的文件和目录操作函数

只说有哪些,和怎么样用这些基础的函数,头文件这里就不打了,到时看有哪些满足你的需求搜就好了,其中的操作分为缓冲操作和非缓冲操作。

文件目录的操作,以文件目录指针为主的缓冲操作

chmod(文件或目录的录取或名字,权限)
改变文件或目录的权限

文件

文件打开与关闭

对一个文件进行操作,我们首要的就是打开一个文件,不然怎么进行操作呢?
文件指针,一个用来指向文件的指针,其也代表了这个文件,我们通过这个文件指针对文件进行各种操作。
怎么定义一个文件指针?
FILE *p 这里的p就是一个文件指针。用法就是,FILE *变量名
如何打开一个文件?
fopen(文件的路径或他的名字,打开的模式)
打开成功,这个函数会返回一个文件指针代表了你打开的的那个文件,这个模式有很多种,只读,只写或只读写,这些可以上网看看。打开失败返回NULL
打开了一个文件操作完之后就要关闭一个文件
fclose(文件指针)
关闭成功返回0,失败返回-1

文件的读写

我们读写的时候是按文件内读写点
1,普通的读写:
读是fread
fread(存放要读出来内容的地方,一个字节的大小,要读多少个字节,文件指针)
成功了返回读了多少字节的数值,失败返回-1,
写是fwrite
**fwrite(**存放要写到文件里内容的地方,一个字节的大小,要读多少个字节,文件指针)
成功了返回写了多少字节的数值,失败返回-1
2,格式化读写:
3,单个字符读写:
4,字符串读写:
这几个这个不常用,知道有这个就可以了,可以搜,
这里还有标准输出输入流的知识,stdin标准输入,stdout标准输出,stderr标准出错,都是FILE类型的,配合fread,fwrite使用,
stdin作为fread的文件指针,代表了从键盘读取
stdout作为fwrite的文件指针,代表了输出到屏幕
stderr是标准出错,和stdout都是输出到屏。

文件读写点的定位和操作

feof(文件指针)
判断读写点是否在文件的末尾,每执行一次就会使读写点向后一位,知道末尾
fseek(文件指针,偏移基准位置的长度,基准位置)
这个设置读写点的函数,成功返回0,失败返回-0
这个基准位置可以是
SEEK_SET–文件开头
SEEK_CUR–文件当前位置
SEEK_END–文件末尾
ftell(文件指针)
返回一个数值
rewind(文件指针)
将文件的读写点移动到开头

目录也就是文件夹

对目录的操作

getcwd(存放目录路径的地方,地方的大小)
获取当目录的路径,放到一个地方
chdir(某个目录的路径)
将工作目录切换到某个目录的路径。
mkdir(目录的路径或名字,目录的权限)
创建目录
rmdir(目录的路径或名字)
删除目录

打开和关闭目录

DIR *p这是定义一个目录指针,与文件类似的。
opendir(目录的名字或路径)
成功返回一个目录指针,失败NULL
closedir(目录的名字或路径)

目录的读取

我们需要先定义一个用来存放读取信息的结构指针
struct dirent 结构名
在这里插入图片描述
这里的struct dirent结构在头文件已经定义好了,直接struct dirent 结构名即可,这样才能用readdir
readdir(目录的名字或路径)
阅读目录,记录目录的信息
seekdir(目录的名字或路径,偏移基准位置的多少,基准位置),其与fseek一样的。
telldir(目录的名字或路径)与ftell一样

文件目录的操作,以文件描述符为主的非缓冲操作

结构体变记录文件保持这个文件的相关信息,打开了多个文件,会构成结构体数组,每个下标代表了一个文件描述符。

文件的打开关闭

open(文件的路径或者名字,以什么样的方式打开文件flags,权限)
在这里插入图片描述

这个标志可以上网搜索,他也可以创建文件,这里会返回一个文件描述符
close(文件描述符)
关闭文件

读写

read(文件描述符,放置读出来内容的地方,读多少)
读文件,把内容放在一个地方
write(文件描述符,放置要写入内容的地方,写多少)
根据一个地方的内容,写到文件

改变文件大小

ftruncate(文件描述符,大小)

文件内读写的定位

lseek(文件描述符,偏移基准位置的长度,基准位置)
这个设置读写点的函数,成功返回0,失败返回-0,和前面一样

原子操作

pread、pwrite。具体上网搜索

文件描述符

文件描述符实则是系统分配的一个数值,我们可以将其直接使用。
我们可以复制文件描述符,有两个函数,dup,dup2
dup(旧的文件描述符)
返回一个新的文件描述符,其为系统随机分配,这两个同时指向一个文件,当其中一个文件描述符关闭后,文件并不会关闭,只有两个全部关闭。文件才会关闭。
dup2(旧的文件描述符,新的文件描述符)
返回一个新的文件描述符和后面的一样,不由系统随机分布了

获取文件信息

stat(文件名,结构的指针)
fstat(文件描述符,结构的指针)
这个stat结构已经定义好了,我们只需赋予指针即可
struct stat 名字
在这里插入图片描述
有了这个结构体的信息我们就可以使用一些函数来判断
在这里插入图片描述文件的类型等。
还有一个函数
access(文件的名字或者路径,要检查的权限)
可以又来检验一个文件是否有权限。

文件的锁定

fcntl(文件描述符,cmd指令,文件锁信息的结构体)
在这里插入图片描述
这个cmd也有3个
在这里插入图片描述

时间相关的

在Linix系统中,这个标准时间点是1970年1月1日00:00:00。用time_t这种数据类型来表示从那一刻到现在所经过的秒数。
time_t p 创建时间数据类型p
gmtime(时间类型的变量);
转化为格林威治时间
**localtime(**时间类型的变量);
转化为本地时间
都是返回一个保存时间的变量体
在这里插入图片描述

http://www.dtcms.com/a/430577.html

相关文章:

  • 网站首页psdwordpress禁用修订
  • Coze源码分析-资源库-编辑工作流-后端源码-领域/数据访问/基础设施层
  • 13个GNS3 3.0.5 appliances设备模板镜像合集:IOSv/L2,IOU L2/L3,以及IOS-XE
  • Java-Spring入门指南(十九)thymeleaf基本概念
  • GameObject 常见类型详解 -- 宝箱(CHEST)
  • GameObject 常见类型详解 -- 按钮(BUTTON)
  • 【SpringAI】第四弹:深入解析 Rag 检索增强工作流程、最佳实践和调优
  • 自助网站免费国外用tornado做的网站
  • 华为业务流程架构:主干清晰、末端灵活
  • 基于any2web+deepseek实现对三角函数定义的理解
  • 建个企业网站一年需要多少钱网站网页切换怎么做的
  • 《考研408数据结构》第三章(队列)复习笔记
  • 《C++进阶之C++11》【lambda表达式 + 包装器】
  • 【C++】栈、队列、双端队列、优先级队列、仿函数
  • 潢川手机网站建设做网站的图片=gif
  • Java 大视界 -- Java 大数据在智能安防视频监控系统中的视频语义理解与智能检索进阶
  • 图片转视频
  • AI 智能体在 2025 年面临的挑战
  • 做一元夺宝网站需要什么条件网页网站建设软件
  • 网站建设与维护的实训总结wordpress 自定义注册
  • 什么是RDMA?—— 一场网络通信的范式革命
  • 一篇文章入门RabbitMQ:基本概念与Java使用
  • @ResponseStatus 注解详解
  • Linux--权限
  • 【连载3】MySQL 的 MVCC 机制剖析
  • C++封装和继承特性
  • Linux(操作系统)文件系统--对打开文件的管理
  • 【Unity笔记】Unity XR 模式下 Point Light 不生效的原因与解决方法
  • 图片设计网站推荐wordpress下载的主题怎么安装
  • 分布式存储分片核心:从哈希取模到Redis哈希槽,从哈希类到非哈希类