Linux目录操作函数:opendir/readdir/closedir
来源:互联网 发布:售电软件 编辑:程序博客网 时间:2024/05/17 22:51
DIR* opendir (const char * path );
struct dirent* readdir(DIR* dir_handle);
int closedir(DIR * dir_handle);
1. opendir
头文件:
#include<sys/types.h>
#include<dirent.h>
函数原型:
DIR* opendir (const char * path );
功能:
打开一个目录,在失败的时候返回一个空的指针。
返回值:
DIR*, DIR构体的原型为:struct __dirstream
在linux系统中:
#include<dirent.h>
typedef
struct
__dirstream DIR;
struct
__dirstream
{
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. */
};
2. readdir
头文件:
#include<dirent.h>
函数原型:
struct dirent* readdir(DIR* dir_handle);
功能:
读取opendir 返回值的那个列表
返回值:
返回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字符 */
}
opendir(3)/readdir(3)/closedir(3)用于遍历目录数据块中的记录。
以下这段代码是打开目录(opendir),读取目录下文件(readdir),关闭目录(closedir)的使用示例:
#include <stdio.h>
#include <dirent.h>
#include <string.h>
#include <stdlib.h>
int
main()
{
void
DirTravl(
const
char
*dirpath,
const
char
* filename);
DirTravl(
"/"
,
".cpp"
);
return
0;
}
//遍历目录dirpath,查找文件名中包含filename的文件
void
DirTravl(
const
char
*dirpath,
const
char
*filename)
{
struct
dirent *dp;
DIR *dfd;
char
path[256] = {
'\0'
};
strcpy
(path, dirpath);
if
( (dfd = opendir(path)) == NULL )
{
printf
(
"Failed to open directory! dir: %s"
, path);
return
;
}
while
( (dp = readdir(dfd)) != NULL)
{
if
(
strstr
(dp->d_name, filename)!=NULL)
{
printf
(
"%s\n"
,dp->d_name);
}
}
closedir(dfd);
}
另外几个函数:
int mkdir(const char *pathname, mode_t mode);
功能:创建一个名叫pathname的目录,权限(mode & ~umask & 0777)。
需要 #include<sys/stat.h>
#include <sys/types.h>
返回值:成功返回0,失败返回-1
int rmdir(const char *pathname); //需要#include <unistd.h>
功能: rmdir() deletes a directory, which must be empty.
返回值:成功返回0,失败返回-1
int chdir(const char *path); // #include <unistd.h>
int fchdir(int fd);
功能:chdir函数用于改变当前工作目录。调用参数是指向目录的指针,调用进程需要有搜索整个目录的权限
- Linux目录操作函数:opendir/readdir/closedir
- linux 目录操作函数opendir readdir closedir,文件stat
- opendir 、closedir 、readdir 目录函数
- Linux C/C++ ----目录文件的操作(opendir,readdir,closedir)
- linux c下目录文件的操作(opendir,readdir,closedir)
- Linux 文件操作函数 opendir()、readdir()、closedir()、stat()
- Linux chmod opendir readdir closedir
- perl中目录句柄的操作(opendir, readdir, closedir)
- apue读书笔记【八】:目录操作opendir readdir closedir
- linux c学习笔记----目录文件的操作(opendir,readdir,closedir)
- 4.21 opendir、readdir和closedir函数-读目录
- php读取目录文件函数is_dir(),opendir(),readdir(),closedir()
- linux C 遍历目录及其子目录 opendir -> readdir -> closedir
- linux C 遍历目录及其子目录 opendir -> readdir -> closedir
- linux C 遍历目录及其子目录 opendir -> readdir -> closedir .
- Linux下面用c语言遍历目录opendir -> readdir -> closedir
- Linux下面用c语言遍历目录opendir -> readdir -> closedir
- linux C 遍历目录及其子目录 opendir -> readdir -> closedir
- 1.6
- 1432
- Triangle
- Convert Sorted List to Binary Search Tree
- Sybase ASA(SQL Anywhere)相关电子书籍文档及其他资源合集整理
- Linux目录操作函数:opendir/readdir/closedir
- 打包
- codility上的练习 (1)
- 9.6.1 哈希查找之分离链接哈希表解决哈希碰撞(2)
- Session详解
- iOS上的socket通信
- 分割图像并指定多个灰度阀值,对同一幅图像进行分区域的二值化
- LA 4256 Salesmen
- 【Mac OS X开发】NSTextFieldCell选中和正常状态的字体段落样式设置