std::filesystem::perm_options
De cppreference.com
< cpp | filesystem
Definido en el archivo de encabezado <filesystem>
|
||
enum class perm_options { replace = /* no especificado */, |
(desde C++17) | |
Este tipo representa las opciones disponibles que controlan el comportamiento de la función std::filesystem::permissions().
perm_options
satisface los requerimientos de BitmaskType (que significa que los operadores de bit a bit operator&, operator|, operator^, operator~, operator&=, operator|=, y operator^= se definen para este tipo).
[editar] Constantes miembro
A lo sumo, puede estar presente uno de add
, remove
, o replace
. De lo contrario, el comportamiento de la función de permisos no está definido.
Constante miembro | Significado |
---|---|
replace
|
Los permisos se reemplazarán completamente por el argumento a permissions() (comportamiento por defecto).
|
add
|
Los permisos se reemplazarán por el resultado de la operación OR bit a bit del argumento y de los permisos actuales. |
remove
|
Los permisos se reemplazarán por el resultado de la operación AND bit a bit del argumento negado y los permisos actuales. |
nofollow
|
Los permisos se cambiarán en el enlace simbólico mismo, en lugar de en el archivo al que se resuelve. |
[editar] Ejemplo
Ejecuta este código
#include <fstream> #include <bitset> #include <iostream> #include <filesystem> namespace fs = std::filesystem; void demo_permisos(fs::perms p) { std::cout << ((p & fs::perms::owner_read) != fs::perms::none ? "r" : "-") << ((p & fs::perms::owner_write) != fs::perms::none ? "w" : "-") << ((p & fs::perms::owner_exec) != fs::perms::none ? "x" : "-") << ((p & fs::perms::group_read) != fs::perms::none ? "r" : "-") << ((p & fs::perms::group_write) != fs::perms::none ? "w" : "-") << ((p & fs::perms::group_exec) != fs::perms::none ? "x" : "-") << ((p & fs::perms::others_read) != fs::perms::none ? "r" : "-") << ((p & fs::perms::others_write) != fs::perms::none ? "w" : "-") << ((p & fs::perms::others_exec) != fs::perms::none ? "x" : "-") << '\n'; } int main() { std::ofstream("prueba.txt"); // crear archivo std::cout << "Archivo creado con permisos: "; demo_permisos(fs::status("prueba.txt").permissions()); fs::permissions("prueba.txt", fs::perms::owner_all | fs::perms::group_all, fs::perm_options::add); std::cout << "Al agregar u+rwx y g+rwx: "; demo_permisos(fs::status("prueba.txt").permissions()); fs::remove("prueba.txt"); }
Posible salida:
Archivo creado con permisos: rw-r--r-- Al agregar u+rwx y g+wrx: rwxrwxr--
[editar] Véase también
(C++17) |
Modifica los permisos de acceso a archivo. (función) |
(C++17) |
Identifica los permisos del sistema de archivos. (enum) |