在C语言中,使用opendir()
函数打开一个目录流后,需要使用closedir()
函数来关闭该目录流。closedir()
函数的原型如下:
int closedir(DIR *dirp);
其中,dirp
是一个指向DIR
类型的指针,该指针是通过opendir()
函数获得的目录流。
closedir()
函数的作用是关闭由dirp
指向的目录流,并释放与之相关的资源。如果成功关闭目录流,closedir()
函数返回0;如果发生错误,返回-1,并设置相应的错误码。
以下是一个简单的示例,演示如何使用opendir()
和closedir()
函数来遍历目录并关闭目录流:
#include <stdio.h>
#include <dirent.h>
#include <stdlib.h>
int main() {
DIR *dir;
struct dirent *entry;
// 打开目录
dir = opendir(".");
if (dir == NULL) {
perror("opendir");
exit(EXIT_FAILURE);
}
// 遍历目录中的条目
while ((entry = readdir(dir)) != NULL) {
printf("%s\n", entry->d_name);
}
// 关闭目录流
if (closedir(dir) == -1) {
perror("closedir");
exit(EXIT_FAILURE);
}
return 0;
}
在这个示例中,程序首先使用opendir()
函数打开当前目录(.
),然后使用readdir()
函数遍历目录中的每个条目,并打印条目的名称。最后,使用closedir()
函数关闭目录流。如果在打开目录或关闭目录流时发生错误,程序将打印错误信息并退出。