IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Linux学习日记13——目录操作 -> 正文阅读

[系统运维]Linux学习日记13——目录操作

学习视频链接

黑马程序员-Linux系统编程_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1KE411q7ee?p=65&spm_id_from=pageDriver

目录

一、getcwd 和 chdir 函数

1.1 getcwd函数

1.2?chdir 函数

1.3?测试案例

二、文件和目录权限

2.1 vim查看目录

2.2 目录权限和文件权限区别

三、opendir、readdir、closedir函数

3.1?opendir 函数

3.2?readdir

3.3 closedir 函数

3.4 测试案例


一、getcwd 和 chdir 函数

1.1 getcwd函数

1、作用

获取进程当前工作目录(卷3 标库函数:man 3 getcwd)

2、char *getcwd(char *buf, size_ t size);

成功?buf 中保存当前进程工作目录位置

失败返回 NULL

1.2?chdir 函数

1、作用

改变当前进程的工作目录。

2、int chdir(const char *path);?

成功 返回 0?

失败 返回 -1,设置 errno 为相应的值

1.3?测试案例

获取及修改当前进程的工作目录,并打印至屏幕

?

二、文件和目录权限

2.1 vim查看目录

1、目录内容:

目录文件也是 “文件”。其文件内容是该目录下所有子文件的目录项 dentry。可以尝试用 vim 打开一个目录。

2、用 vim 打开目录

?下面 imp_cd.c 和 a 是目录项

2.2 目录权限和文件权限区别

r w x
文件 文件的内容可以被查看
cat、more、less...
内容可以被修改
vi、>、...
可以运行产生一个进程
./文件名
目录 目录可以被浏览
ls、tree...
创建、删除、修改文件
mv、touch、mkdir...

可以被打开、进入
cd

修改文件夹权限

三、opendir、readdir、closedir函数

3.1?opendir 函数

1、作用

根据传入的目录名打开一个目录(库函数,不是系统调用,查看这个函数在第三卷 man 3 opendir)

2、DIR *opendir(const char *name);

成功返回指向该目录结构体指针,失败返回 NULL

参数支持相对路径、绝对路径两种方式:例如:打开当前目录:① getcwd(),opendir()? ? ② opendir(".");

3.2?readdir

1、作用

读取目录(库函数)

2、struct dirent *readdir(DIR *dirp);

成功返回目录项结构体指针

失败返回 NULL,设置 errno 为相应值

需注意返回值,读取数据结束时也返回 NULL 值,所以应借助 errno 进一步加以区分

3、struct 结构体?

其成员变量重点记忆两个:d_ino、 d_name。实际应用中只使用到 d_name

因为 d_name 数组最大为 256,所以目录项限定为 255(名字 + \n 要小于 256)

3.3 closedir 函数

1、作用

关闭打开的目录。

2、int closedir(DIR *dirp);

成功返回 0

失败返回?-1,设置 errno 为相应值

3.4 测试案例

1、使用上述三个函数实现一个 ls 的效果

2、C语言代码

3、编译执行

4、不显示 .. 和 .

?

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-04-07 23:07:00  更:2022-04-07 23:11:07 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 22:29:42-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码