在 C++ 中启动可执行文件
Launching executable in C++
我希望通过 API 调用启动一个可执行文件,但我不确定是否应该事先使用 posix APIs 检查可执行位。这方面的最佳做法是什么?
您将用于启动进程的所有 Posix API(例如 execve()
和朋友)将在原子和安全的上下文中执行任何和所有必需的文件系统权限检查(并执行所以在用户 space 中两者都不是)。最佳做法是简单地使用可用的系统调用。
附带说明一下,您可以浏览调用标准 fork
/exec
团队的各种工具的源代码。例如 GNU make。我敢肯定在野外某处有例外,但实际上我从未见过真正的软件在调用 exec()
.
之前尝试验证用户 space 中的文件系统权限
我希望通过 API 调用启动一个可执行文件,但我不确定是否应该事先使用 posix APIs 检查可执行位。这方面的最佳做法是什么?
您将用于启动进程的所有 Posix API(例如 execve()
和朋友)将在原子和安全的上下文中执行任何和所有必需的文件系统权限检查(并执行所以在用户 space 中两者都不是)。最佳做法是简单地使用可用的系统调用。
附带说明一下,您可以浏览调用标准 fork
/exec
团队的各种工具的源代码。例如 GNU make。我敢肯定在野外某处有例外,但实际上我从未见过真正的软件在调用 exec()
.