我们可以使用c在linux中创建进程的方法有多少

我在Linux中创建进程时感到困惑.到目前为止,我认为我们可以通过调用以下系统调用来创建进程.

>系统()
> exec()系列调用
> fork()系统调用

但:

> system():但是当“系统”系统调用执行shell上的输入可执行文件时,shell正在创建一个子进程来执行输入.所以shell调用子进程然后我们可以说fork正在为此创建进程.
> exec系统调用:当这个系统调用时,用新进程写入当前正在运行的进程.所以它也创建了一个新进程,但是使用相同的地址空间.我认为它也在调用call fork来创建进程.

我很困惑以上事实是创建新进程或只有fork系统的可能方法.

最佳答案
系统调用的exec系列不会调用fork,也不会创建新的进程.
它只用新二进制文件覆盖现有进程.

在linux用户程序中,fork是创建新进程的唯一函数.虽然fork内部调用克隆和其他系统调用.

在另一方面,系统只是fork和exec的包装器.创建进程的实际任务是通过fork in system完成的.因此系统不是创建新流程的方法.

相关文章

文件查找(find) 1 find 简单的说,就是实时查找指定的内容或条件。特点:最新、最快、最准确。 用法:...
非交互式添加分区 方法一 添加/deb/sdb 下的分区,其实位置为1到1000M,第二个分区位置为1001至3000M,...
编译安装httpd 1 去官网下载源码包 为避免非法软件,一定要去官网下载http://www.apache.org httpd-2.4...
gdisk用法 gdisk - InteractiveGUIDpartitiontable (GPT) manipulator GPTfdisk (akagdisk) isatext-mo...
1 一定用快捷键 这里简单的说下几个常用的快捷按键。 1.1 移动光标快捷键 Crtl + a 光标回到命令行...
bash shell中测试命令 test命令提供了if-than语句中测试不同条件的途径。如果test命令中列出的条件成立...