c - 在调用返回行为方面,fork() 和 exec() 系统调用与其他系统调用有何不同?

标签 c unix fork exec manpage

fork 返回两次-

  • 父级一次

  • 曾经在 child 身上

但是,exec() 在调用和返回行为方面与其他系统调用有何不同?

最佳答案

实际上,有一些少数不遵守“返回一次”范式。

fork() 的调用返回一次 两次 - 后者在成功时在父级返回一次,在子级中返回一次,前者在失败时返回它只在父级中返回一次。

exec() 的调用将在失败时返回,但如果成功,则当前进程将被新程序覆盖。

还有其他的,例如 exit()abort(),它们根本不会返回。

关于c - 在调用返回行为方面,fork() 和 exec() 系统调用与其他系统调用有何不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42641190/

相关文章:

c - 如何将一个函数的结果传递给另一个函数?

c - 为什么 `struct sockaddr` 包含地址族字段?

c - 如何阻止 execve 退出原始程序

从 system() 更改为 exec(),它会加速我的代码吗?

当指向数组中的文件时,fread 中的核心转储

python - 在 cython 类中包装一个预初始化的指针

c - 不可靠的信号 API - 代码未按预期工作

c - unistd.h 的 `l` 中的 `lseek` 是什么意思?

c - 使用警报让父进程等待子进程几秒钟

perl - 如何在 perl 中的 fork 之间共享简单标量(计数器变量)?