我有一项任务要完成,部分任务是获得某些文件功能,并检查是否使用C / C ++正确设置了这些功能。我想确保某些文件具有cap_new_raw + ep功能。除了使用system(get_cap文件)和读取输出(不返回值,不输出)之外,还有什么其他方法可以实现?
答案 0 :(得分: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