Как получить файловые возможности в Linux с помощью C / C ++ с помощью другого метода, кроме системного вызова system ()?

У меня есть задача для выполнения, и частично это получить определенные возможности файлов и проверить, правильно ли они установлены с помощью C / C ++. Я хочу убедиться, что определенный файл имеет возможность cap_new_raw + ep. Что может быть другим способом достижения этого, кроме использования системы (файл get_cap) и чтения вывода (не возвращая значение, вывод)?

-1

Решение

Так что, если я хорошо понимаю руководство, что-то вроде этого должно работать:

capt_t file_cap;
cap_flag_value_t cap_flag_value;

file_cap = cap_get_file("/path/");
if(file_cap != 0) {
if(cap_get_flag(file_cap, CAP_NEW_RAW, CAP_EFFECTIVE, &cap_flag_value) == 0) {
if(cap_flag_value == CAP_SET)
// it works
}
else // handle error
if(cap_get_flag(file_cap, CAP_NEW_RAW, CAP_PERMITTED, &cap_flag_value) == 0) {
if(cap_flag_value == CAP_SET)
// it works
}
else // handle error
}
else // handle error
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]