1.6.4 Linux 目录操作函数

Linux 高并发学习笔记 - 笔记索引

文章目录

  • 1.6.4 Linux 目录操作函数
    • 前言
    • 切换工作目录
    • 查看工作目录
    • 创建目录
    • 重命名目录
    • 移除目录
    • 遍历目录(划重点)
前言

关于文件操作函数这一块主要用英文文档的形势书写,因为凉皮在写文档的时候发现Markdown用起来太繁琐了。那么关于函数这一块主要也是读文档就能解决的了,还有比如打英文字符比中文字符快等等原因,就没有去再写中文描述了。

关于文档可以使用Linux命令man 2/3 xxx查看,在后面也写了查看每个文档的命令。

切换工作目录
  • chdir
#include <unistd.h>
int chdir(const char *path);
// $ man 2 chdir
查看工作目录
  • getcwd
#include <unistd.h>
char *getcwd(char *buf, size_t size);
// $ man 2 getcwd
创建目录
  • mkdir
#include <sys/stat.h>
#include <sys/types.h>
int mkdir(const char *pathname, mode_t mode);
// $ man 2 mkdir
重命名目录
  • rename
#include <stdio.h>
// rename or move a file or director
int rename(const char *oldpath, const char *newpath);
// $ man 2 rename
移除目录
  • rmdirremove
#include <unistd.h>
// remove a director
int rmdir(const char *pathname);
// $ man 2 rmdir
#include <stdio.h>
// remove a file or director
int remove(const char *pathname);
// $ man 3 remove
遍历目录(划重点)
  • Linux C/C++ 中遍历目录的过程比较复杂,和其他众多语言也有所不同,但也更能体现底层逻辑,本部分将重点讲解。

  • opendirreaddirseekdirclosedir

  • 常用属性:

    d_off:文件在当前目录的序号

    d_name:文件名

    d_reclen:文件名长度

#include <sys/types.h>
#include <dirent.h>
//  open a director
//      name:
//          the file path
//      return value:
//          a pointer to DIR, or NULL for error
DIR *opendir(const char *name);
// $ man 3 opendir
#include <dirent.h>
//  read an item in director
//      dirp:
//          a pointer to DIR return by "opendir"
//      return value:
//          an item in director and restore in struct dirent, NULL for EOF or other errors
//          struct dirent {//              ino_t          d_ino;       /* Inode number */
//              off_t          d_off;       /* Current position in the director stream */
//              unsigned short d_reclen;    /* Length of this record */
//              unsigned char  d_type;      /* Type of file; not supported by all filesystem types */
//              char           d_name[256]; /* Null-terminated filename */
//          };
//          It's similar to read a file, while read an item in director, the file seek will move to the next item. You can use "seekdir" to reset the file offset.
struct dirent *readdir(DIR *dirp);
// $ man 3 readdir
#include <dirent.h>
// set the current position of pointer
//      dirp:
//          a pointer to DIR return by "opendir"
//      loc:
//          new position
void seekdir(DIR *dirp, long loc);
// $ man 3 seekdir
#include <sys/types.h>
#include <dirent.h>
//  close a director
//      dirp:
//          a pointer to DIR return by "opendir"
//      return value:
//          return 0 for success, -1 for error
int closedir(DIR *dirp);
// $ man 3 closedir

Linux 高并发学习笔记 - Linux 目录操作函数相关推荐

  1. Linux 高并发学习笔记 - Linux 文件操作函数

    1.6.2 Linux 文件操作函数 Linux 高并发学习笔记 - 笔记索引 前言 关于文件操作函数这一块主要用英文文档的形势书写,因为凉皮在写文档的时候发现Markdown用起来太繁琐了.那么关于 ...

  2. Linux 高并发学习笔记 - Linux 文件属性函数

    1.6.3 Linux 文件属性函数 Linux 高并发学习笔记 - 笔记索引 Linux中一切皆文件,你同样可以用下面这些函数操作目录等特殊文件. 前言 关于文件操作函数这一块主要用英文文档的形势书 ...

  3. Linux 高并发学习笔记 - exec 函数簇重载进程

    2.2.4 exec 函数簇重载进程 Linux 高并发学习笔记 - 笔记索引 execl.execlp.execle.execv.execvp.execvpe exec函数簇将重载进程,直接覆盖当前 ...

  4. 分布式系统 概念 高可用 高并发 学习笔记

    分布式系统 概念 高可用 高并发 学习笔记 0. 分布式系统基本概念 0.1 背景 分布式系统是由一组通过网络进行通信.为了完成共同的任务而协调工作的计算机节点组成的系统.分布式系统的出现是为了用廉价 ...

  5. Java多线程高并发学习笔记(一)——ThreadRunnable

    进程与线程 首先来看百度百科关于进程的介绍: 进程是一个具有独立功能的程序关于某个数据集合的一次运行活动.它可以申请和拥有系统资源,是一个动态的概念,是一个活动的实体.它不只是程序的代码,还包括当前的 ...

  6. 冰冰学习笔记:内存操作函数

    在前面的章节中我们介绍了字符操作函数的用法,用以实现字符串的复制,连接,比较,查找等操作.但是C语言中并非只有字符串需要这些操作,其他类型的变量也会用到复制,比较等操作.此时,字符串操作函数将不再适用 ...

  7. JAVA高并发学习笔记(二) 多线程基础

    1.1什么是线程 线程是进程(程序在计算机上的一次执行活动)内的执行单元 进程是以独立于其他进程的方式运行的,进程间是互相隔离的.一个进程无法直接访问另一个进程的数据.进程的资源诸如内存和CPU时间片 ...

  8. Linux高并发服务器开发---笔记4(网络编程)

    0705 第4章 项目制作与技能提升 4.0 视频课链接 4.1 项目介绍与环境搭建 4.2 Linux系统编程1.4.3 Linux系统编程2 4.4 多进程 1-9 10.进程间通信☆☆☆ 4.5 ...

  9. Linux 高并发服务器开发

    该文章是通过观看牛客网的视频整理所得,以及在实践过程中遇到的问题及解决方案的整理总结. Linux 高并发服务器开发 linux 系统编程 linux 环境的搭建 环境搭建需要的软件 虚拟机中安装 u ...

最新文章

  1. luogu P3398 仓鼠找sugar(树链剖分、求树上两条路径有没有交点,爽!)
  2. phantomjs学习资料
  3. java 构造函数和_Java类和构造函数
  4. .NET Core 3.0愈加成熟,微软将不再把.NET Framework API移植给它
  5. Markdown--Latex数学公式编辑
  6. unity3D---鼠标、键盘输入
  7. 【毕业寄语】我们不缺少鼓励但却缺少了批评
  8. Spark SQL自定义函数案例(拼接字符串)
  9. 红米pro android o刷机,红米Pro官方卡刷机教程 怎么刷机
  10. UE编辑器 添加注释选区的快捷键
  11. 目前主要的计算机汉字输入方法是什么,[计算机汉字输入方法.ppt
  12. MODIS数据wget下载
  13. Binding几种绑定方式
  14. 真实案例分享:MOS管电源开关电路,遇到上电冲击电流超标
  15. 工商总局抽检电商 天猫1号店等仍存售假
  16. 淘宝网(关于淘宝拆分)
  17. 疫情下如何保持高效项目交付
  18. 能源与经济面板数据集(中国能源统计年鉴面板数据+区域经济、人口与二氧化碳排放量面板数据)
  19. Qt编写输入法源码V2019,未采用Qt系统层输入法框架,独创输入切换机制
  20. Steam 取消徽章展示

热门文章

  1. python全栈讲解_Python全栈数据工程师养成攻略(视频讲解版)
  2. 政府形象塑造_让您的同事塑造您的职业目标的4个理由
  3. 基于改进樽海鞘群寻优SVM的土壤含水量预测算法
  4. Proxy是什么意思?谁能解释一下
  5. 关于fftshift的用法
  6. docker离线部署
  7. MySQL实战第十七讲-如何正确地显示随机消息?
  8. BUG调试:maven install报错:程序包xxx不存在
  9. 学生党哪款蓝牙耳机价格实惠?五款最贵不过500元蓝牙耳机,音质卓越
  10. HTML一条线匀速直线运动,利用简易“节拍器”演示匀速直线运动和变速直线运动...