apue读书笔记【八】:目录操作opendir readdir closedir
来源:互联网 发布:阿里云 ota 安卓 编辑:程序博客网 时间:2024/05/18 03:07
一、打开一个目录
函数名称:opendir
函数原型:DIR * opendir(const char* path);
函数功能:打开一个目录,在失败的时候返回NULL(如果path对应的是文件,则返回NULL)
返回值:
DIR 结构体的原型为:struct_dirstream
在linux系统中:
typedef struct __dirstream DIR;
{
void *__fd; /* `struct hurd_fd' pointer for descriptor. */
char *__data; /* Directory block. */
int __entry_data; /* Entry number `__data' corresponds to. */
char *__ptr; /* Current pointer into the block. */
int __entry_ptr; /* Entry number `__ptr' corresponds to. */
size_t __allocation; /* Space allocated for the block. */
size_t __size; /* Total valid data in the block. */
__libc_lock_define (, __lock) /* Mutex lock for this structure. */
};
头文件:#include<dirent.h>
#include<sys/types.h>
二、读取目录
函数名称:readdir
函数原型:struct dirent * readdir(DIR * dir_handle);
函数功能:本函数读取dir_handle目录下的目录项,如果有未读取的目录项,返回目录项,否则返回NULL。
返回值:
返回dirent结构体指针,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) 文件名,最长255字符 */
}
头文件:#include<dirent.h>
#include<sys/types.h>
三、关闭目录
函数名称:closedir
函数原型:int closedir(DIR * dir_handle);
函数功能:本函数读取dir_handle目录下的目录项,如果有未读取的目录项,返回目录项,否则返回NULL。
demo:列举当前目录下的所有目录和文件 ls
#include <unistd.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <stdlib.h>#include <stdio.h>#include <errno.h>#include <string.h>#include <dirent.h>#define ERR_EXIT(m) \do \{ \perror(m); \exit(EXIT_FAILURE); \} while(0)int main(void){DIR* dir=opendir(".");//打开当前目录struct dirent *de;while((de=readdir(dir))!=NULL){//尝试读取文件或目录 if(strncmp(de->d_name,".",1)==0){//如果是当前目录就忽略 continue; } printf("%s\n",de->d_name);//打印目录名}closedir(dir);//关闭目录exit(EXIT_SUCCESS);}
输出:
- apue读书笔记【八】:目录操作opendir readdir closedir
- Linux目录操作函数:opendir/readdir/closedir
- opendir 、closedir 、readdir 目录函数
- perl中目录句柄的操作(opendir, readdir, closedir)
- linux 目录操作函数opendir readdir closedir,文件stat
- Linux C/C++ ----目录文件的操作(opendir,readdir,closedir)
- linux c下目录文件的操作(opendir,readdir,closedir)
- 获取目录信息opendir/readdir/closedir
- 文件操作opendir()/readdir()/closedir()/stat()
- 文件操作opendir()/readdir()/closedir()/stat()
- 文件操作opendir()/readdir()/closedir()/stat() .
- opendir readdir closedir
- opendir readdir closedir
- linux c学习笔记----目录文件的操作(opendir,readdir,closedir)
- linux C 遍历目录及其子目录 opendir -> readdir -> closedir
- 4.21 opendir、readdir和closedir函数-读目录
- linux C 遍历目录及其子目录 opendir -> readdir -> closedir
- linux C 遍历目录及其子目录 opendir -> readdir -> closedir .
- IDE
- PKU 1002
- S3C2416裸机开发系列十七_GCC下Fatfs的移植
- 用Python的扩展作回归
- 实现硬件访问服务的JNI方法
- apue读书笔记【八】:目录操作opendir readdir closedir
- 了解和分析内存泄露的文章!
- zoj3703
- "library not found for - "解决办法
- 文件锁
- 【Unity 3D】学习笔记十一:自定义风格组件(Custom Styles)
- 大数据与计算机体系结构相关知识
- 在线免费学习全世界的课程
- 无线网卡的模式