繁体   English   中英

如何在 Linux 中使用 C/C++ 和 system() 系统调用以外的其他方法获取文件功能?

[英]How to get file capabilities in Linux using C/C++ with other method than system() system call?

我有一个任务要完成,其中一部分是获取某些文件功能并检查它们是否使用 C/C++ 正确设置。 我想确保某些文件具有 cap_new_raw+ep 功能。 除了使用系统(get_cap 文件)和读取输出(不返回值,输出)之外,还有什么其他方法可以实现它?

所以如果我很好地理解手册,这样的事情应该可以工作:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM