c++ opendir函数在目录遍历时如何处理错误

1949idc 2年前 (2024-09-18) 阅读数 304 #编程语言

在C++中,使用opendir函数进行目录遍历时,可能会遇到一些错误

#include<iostream>
#include <dirent.h>
#include <cerrno>
#include <cstring>

int main() {
    const char* dir_path = "/path/to/your/directory";
    DIR* dir = opendir(dir_path);

    if (dir == nullptr) {
        std::cerr << "Error opening directory: "<< strerror(errno)<< std::endl;
        return 1;
    }

    struct dirent* entry;
    while ((entry = readdir(dir)) != nullptr) {
        // Process the directory entry
        std::cout << "File name: "<< entry->d_name<< std::endl;
    }

    closedir(dir);
    return 0;
}

在这个示例中,我们首先检查opendir函数的返回值。如果返回值为nullptr,则表示打开目录时出现了错误。此时,我们可以使用strerror函数和errno变量来获取错误信息,并将其输出到控制台。

注意:在处理完目录后,不要忘记使用closedir函数关闭目录。这是一个良好的编程习惯,可以避免资源泄漏。

版权声明

本文内容由互联网用户自发贡献,该文观点仅代表作者本人
本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

© 2010 首途云安 & 厦门硕顿信息技术有限公司 & 闽ICP备11016866号  增值电信业务经营许可证:B1-20203020 地址:福建厦门思明区嘉禾路297号1806
高新技术企业
软件产品证书
计算机软件著作权
ISO认证
国家3A企业