【问题标题】:How to find the available POSIX system calls api list for my Linux? [closed]如何为我的 Linux 找到可用的 POSIX 系统调用 api 列表? [关闭]
【发布时间】:2020-01-04 17:09:48
【问题描述】:

我正在开发 Ubuntu 16.04,我需要使用这些功能

int spawnv(   mode, path, argv );
int spawnve(  mode, path, argv, envp );
int spawnvp(  mode, file, argv );
int spawnvpe( mode, file, argv, envp );

我知道它们依赖于编译器,那么如何找到我的编译器/系统支持的系统调用?或者如何找到我的进程系统调用的多任务 api?

我尝试使用 man spawn + 单击选项卡,但没有出现任何内容。

【问题讨论】:

  • 这些函数都不是 POSIX 函数——所以不清楚你在追求什么。 POSIX 有posix_spawn() 和一大群亲戚,都从posix_spawn… 开始(其他链接请参见“SEE ALSO”部分)。
  • @JonathanLeffler 好的,但是在哪里可以找到包含我可以使用的函数和系统调用的 api 的文档或命令?我尝试了 man posix_sp + tab 并没有出现在我的命令终端中。

标签: c linux multithreading posix system-calls


【解决方案1】:

Spawn (computing) 上的维基百科页面表明您引用的 spawn*() 函数来自 DOS/Windows。它们在 Unix 中没有直接的类似物——尽管它们最初源自 Unix(fork()exec*())并适用于 DOS/Windows。

在 POSIX 中没有这些函数的直接类似物。可以说,最接近的方法是 posix_spawn() 及其众多支持功能(有关其他功能的链接,请参阅该页面上的“另见”部分)。

我在Linux中没有发现任何类似的功能,即使在查看:

类似的功能可能可以使用fork()(有时)、exec*()waitpid() 或其亲属之一(有时)来编写,但它可能并不那么容易。这部分取决于仿真功能的精确度和完整性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多