c++

c++ mkdir函数如何设置安全属性

小樊
84
2024-12-06 03:41:54
栏目: 编程语言

在C++中,您可以使用mkdir函数创建目录

#include <iostream>
#include <sys/stat.h>
#include <sys/types.h>
#include <unistd.h>

bool setSecureAttributes(const std::string& path, mode_t attributes) {
    // 获取当前umask值
    mode_t currentUmask = umask(0);

    // 创建具有指定属性的目录
    if (mkdir(path.c_str(), attributes) == 0) {
        // 恢复原来的umask值
        umask(currentUmask);
        return true;
    } else {
        // 恢复原来的umask值
        umask(currentUmask);
        return false;
    }
}

int main() {
    std::string path = "/path/to/your/directory";
    mode_t attributes = S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IFDIR; // 设置目录权限为755

    if (setSecureAttributes(path, attributes)) {
        std::cout << "Directory created with specified attributes." << std::endl;
    } else {
        std::cerr << "Failed to create directory with specified attributes." << std::endl;
    }

    return 0;
}

在这个示例中,我们定义了一个名为setSecureAttributes的函数,它接受一个路径和一个属性值作为参数。我们使用mkdir函数创建目录,并设置所需的属性。如果创建成功,函数返回true,否则返回false

请注意,这个示例仅适用于类Unix系统(如Linux和macOS)。在Windows系统上,您需要使用Windows API函数(如CreateDirectory)来实现类似的功能。

0
看了该问题的人还看了