【Linux C中文函数手册】之 目录操作函数

目录操作函数

1)closedir 关闭目录

相关函数: opendir
表头文件: #include<sys/types.h>
#include<dirent.h>
定义函数: int closedir(DIR *dir);
函数说明: closedir()关闭参数dir所指的目录流。
返回值: 关闭成功则返回0,失败返回-1,错误原因存于errno 中。
错误代码: EBADF 参数dir为无效的目录流

2)fchdir 改变当前的工作目录

相关函数: getcwd,chroot
表头文件: #include<unistd.h>
定义函数: int fchdir(int fd);
函数说明: fchdir()用来将当前的工作目录改变成以参数fd 所指的文件描述符。
返回值: 执行成功则返回0,失败返回-1,errno为错误代码。
范例:

#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<unistd.h>
void main()
{
int fd;
fd = open(“/tmp”,O_RDONLY);
fchdir(fd);
printf(“current working directory : %s \n”,getcwd(NULL,NULL));
close(fd);
}
执行结果:
current working directory : /tmp

3)opendir 打开目录

相关函数: open,readdir,closedir,rewinddir,seekdir,telldir,scandir
表头文件:#include<sys/types.h>
#include<dirent.h>
定义函数: DIR * opendir(const char * name);
函数说明: opendir()用来打开参数name指定的目录,并返回DIR*形态的目录流,和open()类似,
接下来对目录的读取和搜索都要使用此返回值。
返回值: 成功则返回DIR* 型态的目录流,打开失败则返回NULL。
错误代码:
EACCESS 权限不足
EMFILE 已达到进程可同时打开的文件数上限。
ENFILE 已达到系统可同时打开的文件数上限。
ENOTDIR 参数name非真正的目录
ENOENT 参数name 指定的目录不存在,或是参数name 为一空字符串。
ENOMEM 核心内存不足。

4)readdir 读取目录

相关函数: open,opendir,closedir,rewinddir,seekdir,telldir,scandir
表头文件:#include <sys/types.h>
#include <dirent.h>
定义函数: struct dirent * readdir(DIR * dir);
函数说明: readdir()返回参数dir目录流的下个目录进入点。
结构dirent定义如下
struct dirent
{
long d_ino; /* inode number 索引节点号 */
off_t d_off; /* offset to this dirent 在目录文件中的偏移 */
unsigned short d_reclen; /* length of this d_name 文件名长 */
unsigned char d_type; /* the type of d_name 文件类型 */
char d_name [NAME_MAX+1]; /* file name (null-terminated) 文件名,最长256字符 */
}
返回值: 成功则返回下个目录进入点。有错误发生或读取到目录文件尾则返回NULL。
附加说明: EBADF参数dir为无效的目录流。

5)rewinddir 重设读取目录的位置为开头位置

相关函数: open,opendir,closedir,telldir,seekdir,readdir,scandir
表头文件: #include<sys/types.h>
#include<dirent.h>
定义函数: void rewinddir(DIR *dir);
函数说明: rewinddir()用来设置参数dir 目录流目前的读取位置为原来开头的读取位置。
错误代码: EBADF dir为无效的目录流

6)seekdir 设置下回读取目录的位置

相关函数: open,opendir,closedir,rewinddir,telldir,readdir,scandir
表头文件: #include<dirent.h>
定义函数: void seekdir(DIR * dir,off_t offset);
函数说明: seekdir()用来设置参数dir目录流目前的读取位置,在调用readdir()时便从此新位置开始读取。
参数offset 代表距离目录文件开头的偏移量。
错误代码: EBADF 参数dir为无效的目录流

7)telldir 取得目录流的读取位置

相关函数: open,opendir,closedir,rewinddir,seekdir,readdir,scandir
表头文件: #include<dirent.h>
定义函数: off_t telldir(DIR *dir);
函数说明: telldir()返回参数dir目录流目前的读取位置。此返回值代表距离
目录文件开头的偏移量返回值返回下个读取位置,有错误发生时返回-1。
错误代码: EBADF参数dir为无效的目录流。

时间: 2024-10-05 06:49:29

【Linux C中文函数手册】之 目录操作函数的相关文章

嵌入式 Linux系统编程(五)——目录文件函数

嵌入式 Linux系统编程(五)--目录文件函数 Linux中目录也是文件,目录操作函数为标准IO库函数.主要函数如下: #include <sys/types.h> #include <dirent.h> DIR *opendir(const char *name); DIR *fdopendir(int fd); 成功返回一个指向目录流的指针,失败返回NULL,并且设置errno全局变量. #include <dirent.h> struct dirent *rea

python文件和目录操作函数小结

本文主要介绍python文件和目录操作函数小结,主要涉及到os模块和shutil模块的一些方法. python中对文件.文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块. 得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd()返回指定目录下的所有文件和目录名:os.listdir()函数用来删除一个文件:os.remove()删除多个目录:os.removedirs(r"c:\python")检验给出的路径是否是一个文件:os.path.isf

自定义的常用文件与目录操作函数库

自定义的常用文件与目录操作函数库,在win和linux平台做了跨平台的处理.(跨平台的处理可以作为参考比较.在win下目录的符号可以是\或者/,但是在linux下只能是/.) 下面给出的是源文件,实现接口函数的代码.每个接口函数都有很详细的功能说明. /* 判断文件或目录是否存在 * 在操作系统中,目录也是一个文件,如果要判断一个目录是否存在则应当使用DirectoryExists, * 要判断一个文件是否存在且是一个归档文件则应当使用IsArchive. * @如果文件或目录存在则返回true

python文件和目录操作函数总结

有关python文件和目录操作函数小结,主要涉及到os模块和shutil模块的一些方法. python中对文件.文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块. 得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd()返回指定目录下的所有文件和目录名:os.listdir()函数用来删除一个文件:os.remove()删除多个目录:os.removedirs(r“c:\python”)检验给出的路径是否是一个文件:os.path.isfile()检验给出

php目录操作函数详解

<?php header('content-type:text/html;charset=utf-8;'); #目录操作函数详解 // 1.getcwd(oid):若成功返回当前目录,否则返回false echo '<hr>1.getcwd():<br>'; echo getcwd(); // 2.chdir():函数把当前的目录改变为指定的目录 // chroot():函数把当前进程的根目录改为指定的目录 echo '<hr>2.chdir():<br&g

几个简单的文件&目录操作函数

一,检测目录是否为空 function isEmptyDir($path){ $handle=opendir($path);----打开路径 while (($item=readdir($handle))!==false){----判断文件名不为假 //循环出$item,如果不是.跟..,那么在if条件里就为真,否则为(空)假 if ($item!="."&&$item!=".."){ return false; } } closedir($hand

【Linux C中文函数手册】 字符串转换函数

字符串转换函数 1)atof 将字符串转换成浮点型数 相关函数 atoi,atol,strtod,strtol,strtoul表头文件 #include <stdlib.h>定义函数 double atof(const char *nptr);函数说明 atof()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('\0')才结束转换,并将结果返回.参数nptr字符串可包含正负号.小数点或E(e)来表示指数部分,如123.456或1

(二十四)linux新定时器:timefd及相关操作函数

timerfd是Linux为用户程序提供的一个定时器接口.这个接口基于文件描述符,通过文件描述符的可读事件进行超时通知,所以能够被用于select/poll的应用场景. 一,相关操作函数 #include <sys/timerfd.h> int timerfd_create(int clockid, int flags); int timerfd_settime(int fd, int flags, const struct itimerspec *new_value, struct itim

Linux显示中文乱码及FHS目录层次标准

课前:notepad++tab 键:生成不同层次回车:生成并列快捷键:ALT+鼠标左键(可输入多条内容)选多行按TAB键XMind 8自动保存路径 第1章 Linux显示中文乱码中文乱码如何解决与排查https://www.processon.com/view/link/59e978b0e4b0c86d400de71c 1.1 Linux的目录结构特点:一切皆文件1) 倒挂的树状结构 一切从跟开始2) Linux每个目录可以挂载在不同的设备(磁盘)上.Windows不容易得到3) Linux所有