Linux 目录流管理
1. 打开/关闭文件
1). 打开目录 / opendir
作用:
打开一个目录,将其与目录流联系起来,方便后续的操作头文件:
#include <dirent.h>
函数原型:
DIR *opendir(const char *name)
参数:
name: 欲打开的目录名(可包含路径)
DIR为一个结构体:typedef struct __dirstream DIR
对用户透明,无需关系其内容
返回值:
成功:返回目录流
失败:返回NULL
错误码:见errno相似函数:
FILE *fdopendir(int fd, const char *mode) //通过目录描述符打开文件
2). 关闭文件 / fclose
作用:
关闭一个已经打开的目录头文件:
#include <dirent.h>
函数原型:
int closedir(DIR *dirp)
参数:
- dirp: 打开目录时候返回的流指针(DIR *)
- 返回值:
成功:0
失败:-1
2. 读/写目录流
1). 目录流-读 / readdir & readdir_r
①. readdir
作用:
读取目录流信息头文件:
#include <dirent.h>
函数原型:
struct dirent *readdir(DIR *dirp)
参数:
dirp: 目录流
struct dirent:
struct dirent {
ino_t d_ino; /* inode number */
off_t d_off; /* not an offset; see NOTES */
unsigned short d_reclen; /* length of this record */
unsigned char d_type; /* type of file; not supported
by all file system types */
char d_name[256]; /* filename */
};
d_type的宏定义:
Macro Description DT_BLK This is a block device DT_CHR This is a character device DT_DIR This is a directory DT_FIFO This is a named pipe (FIFO) DT_LNK This is a symbolic link DT_REG This is a regular file DT_SOCK This is a UNIX domain socket DT_UNKNOWN The file type is unknown If the file type could not be determined, the value DT_UNKNOWN is returned in d_type.
- 返回值:
成功:dirent结构体指针
失败:NULL
②. readdir_r
作用:
读取目录流信息(多线程安全)头文件:
#include <dirent.h>
函数原型:
int readdir_r(DIR *dirp, struct dirent *entry, struct dirent **result)
参数:
- dirp: 打开的目录流
- entry:
- result: 读取到的信息存储到该缓存中返回
- 返回值:
成功:0
失败:-1
3. 目录流定位
1). telldir
作用:
获取当前的读写位置头文件:
#include <dirent.h>
函数原型:
long telldir(DIR *dirp)
参数:
dir: 目录流
- 返回值:
成功:当前指针的位置
失败:-1
2). seekdir
作用:
修改当前的读写位置头文件:
#include <dirent.h>
函数原型:
void seekdir(DIR *dirp, long loc)
参数:
- dirp: 目录流
- loc: 从telldir()获取的目录流位置
- 返回值:
无返回值
3). rewinddir
作用:
将目录流指针指向开始位置头文件:
#include <dirent.h>
函数原型:
void rewinddir(DIR *dirp)
参数:
dirp: 目录流
- 返回值:
无返回值
4. 添加/删除目录
1). mkdir
作用:
创建一个新的目录头文件:
#include <sys/stat.h>
函数原型:
int mkdir(const char *pathname, mode_t mode)
参数:
pathname: 创建的目录名
mode: 创建目录的访问权限
mode = mode & ~umask
- 返回值:
成功:0
失败:-1
2). mkdir
作用:
删除一个目录头文件:
#include <unistd.h>
函数原型:
int rmdir(const char *pathname)
参数:
- pathname: 删除的目录名
- 返回值:
成功:0
失败:-1
5. 工作路径
1). 获取当前工作路径 / getcwd
作用:
获取当前工作路径头文件:
#include <unistd.h>
函数原型:
char *getcwd(char *buf, size_t size)
char *getwd(char *buf)
char *get_current_dir_name(void)
参数:
- buf: 暂存现工作路径
- size: buf的大小
- 返回值:
成功:当前工作路径
失败:NULL
2). 修改当前工作路径 / chdir
作用:
修改当前工作路径头文件:
#include <unistd.h>
函数原型:
int chdir(const char *path)
int fchdir(int fd)
参数:
- path: 目标工作路径
- fd: dir描述符
- 返回值:
成功:0
失败:-1
Linux 目录流管理的更多相关文章
- Linux目录权限管理
Linux目录权限管理 实验目标: 通过本实验掌握centos7/rhel7目录权限的管理.包括配置目录的所属组.SGID.读/写/执行权限等. 实验步骤: 1.创建目录/home/instruc ...
- Linux 文件流管理
1. 打开/关闭文件 1). 打开文件 / fopen 作用: 打开一个文件,将其与文件流联系起来,方便后续的操作 头文件: #include <stdio.h> 函数原型: FILE * ...
- Linux档案与目录的管理
本篇随笔中,主要介绍在Linux环境下,与档案和目录的管理相关的一些命令使用,具体包括如下几个方面: 目录的相关操作:cd,pwd,mkdir,rmdir(rm) 档案与目录的查视:ls 复制.删除与 ...
- Linux系统文件与目录权限管理
Linux文件目录权限管理 一.Linux文件属性及权限 1.Linux文件及目录权限及属性说明 (1)权限及属性说明 (2)文件权限说明 三种权限说明:r 读 read w 写 write x ...
- Linux下用户管理、目录结构
linux的文件系统是采用层级式的树状目录结构,在此结构中的最上层是根目录“/”,然后在此目录下再创建其他的目录. 目录介绍: / root,存放root用户的相关文件 home,存放普通用户的相关文 ...
- Linux目录和文件——管理目录和文件的命令
Linux目录和文件——管理目录和文件的命令 摘要:本文主要学习了Linux系统中关于目录和文件的操作. cd命令 cd命令用来切换工作目录,是Change Directory的缩写. 基本语法 cd ...
- linux档案和目录的管理
资料来自鸟哥的linux私房菜,记录下来供自己平常使用参考 一:目录和路径: cd:change direcoty,变换目录的意思,就是从一个目录变到另一个目录,然后可以用绝对路径去变换目录,也可以用 ...
- Linux目录机构及目录管理
Linux的目录结构与目录管理 Linux目录结构: 1 目录创建规则 FHS 文件系统层次化标准 指定Linux操作系统哪些目录必须具备 /boot /bin /sbin /etc /sys /pr ...
- linux 目录结构+常用命令+压缩命令+vim使用+及基础知识
linux目录架构 / 根目录 /bin 常用的命令 binary file 的目录 /boot 存放系统启动时必须读取的档案,包括核心 (kernel) 在内 /boot/grub/menu.lst ...
随机推荐
- TFS实战培训 - 博时基金公司 (2016年8月)
博时基金管理有限公司是中国内地首批成立的五家基金管理公司之一, 是目前我国资产管理规模最大的基金公司. 博时信息技术部的的软件研发团队是负责公司信息化的核心技术部门,为提升软件产品的研发效率和质量,计 ...
- 阿里巴巴集团2013实习生招聘技术类笔试卷(B)
一.单选题 1.在常用的网络协议中,___是面向连接的.有重传功能的协议. A.IP B.TCP C.UDP D.DXP 2.500张多米诺骨牌整齐地排成一列,依顺序编号为1.2.3… ...
- python 删除一个目录下的所有文件
一个目录下有文件,文件夹,文件夹里又有文件.文件夹....用python脚本,实现,递归删除一个目录下的所有文件: 目录结构如下: 其中我们要删除所有文件 代码实现如下: import os CUR_ ...
- asp.net core 的用户注册功能——Identity上手
首先请using这个类库. using Microsoft.AspNetCore.Identity; 这个类库老牛逼了,首先是包含了一个IdentityUser类.我们可以自己写一个User类继承Id ...
- Java编程中获取键盘输入实现方法及注意事项
Java编程中获取键盘输入实现方法及注意事项 1. 键盘输入一个数组 package com.wen201807.sort; import java.util.Scanner; public clas ...
- C# autofac配置文件中设置单例
设置instance-scope属性值为SingleInstance
- js图片自适应尺寸居中函数处理
/* | autoSerializePicture.js 自适应格式化图片 | auther : baichaohua/2017-09-21 +---------------------------- ...
- 第二章 ConcurrentHashMap源码解析
注:在看这篇文章之前,如果对HashMap的层不清楚的话,建议先去看看HashMap源码解析. http://www.cnblogs.com/java-zhao/p/5106189.html 1.对于 ...
- CentOS 7 - 最小化安装以及引发的问题!
一,操作系统和虚拟机 操作系统:CentOS 7 官方网站:https://www.centos.org 下载地址:https://www.centos.org/download/ 下载版本分三个:D ...
- “全栈2019”Java多线程第二十七章:Lock获取lock/释放unlock锁
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...