有没有办法判断进程是否may执行文件而不必实际执行它(例如通过调用execv(filepath, args)
只是失败并发现errno == EACCES
)?
I could stat
文件并观察st_mode
,但我仍然不知道这与这个过程有什么关系。
理想情况下,我正在寻找类似的功能
get_me_permissions(filepath, &status); // me: the process calling this function
// when decoded, status tells if the process can read, write, and/or execute
// the file given by filepath.
提前致谢。
假设您的最终目标是最终执行该程序,但您没有。该测试将毫无用处,因为即使在进行检查的函数返回之前,结果也可能是错误的!你必须做好应对失败的准备execve
由于权限错误。
正如 Steve Jessop 所指出的,检查给定文件是否可执行can在某些情况下很有用,例如文件列表(ls -l
)或可视化文件管理器。人们当然可以想到更深奥的用途,例如使用文件的权限位进行进程间通信(作为一种不需要任何资源分配的方法很有趣),但我怀疑stat
(“权限位设置为多少?”)而不是access
(“调用进程是否有 X 权限?”)更可能是有趣的问题......
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)