在C语言中,使用opendir()
函数打开一个目录流后,需要使用closedir()
函数来关闭该目录流。closedir()
函数的原型如下:
int closedir(DIR *dirp);
其中,dirp
是一个指向DIR
类型的指针,该指针是通过opendir()
函数获得的目录流。
closedir()
函数的作用是关闭由dirp
指向的目录流,并释放与之相关的资源。如果成功关闭目录流,closedir()
函数返回0;如果发生错误,返回-1,并设置相应的错误码。
以下是一个简单的示例,演示如何使用opendir()
和closedir()
函数来遍历目录并关闭目录流:
#include#include #include 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()
函数关闭目录流。如果在打开目录或关闭目录流时发生错误,程序将打印错误信息并退出。