微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

[Linux]C语言Linux系统编程创建进程

1.

一个进程都由一个唯一的标识符表示,即进程ID,

1.1

ID

2.

#include pid= ppid=

3.

fork()

exec调用

4.exec调用

execl()函数的原型为

path

const

execl()调用会以跳到新的程序的入口点作为结束,错误的时候会返回

=execl(,,(ret==

5.fork()调用

一个和当前进程映像一样的进程可以通过fork()调用,调用者从fork()

当前进程就是父进程,创建成功的进程是子进程。

fork()调用,会返回子进程的

fork()调用会返回

#include </span><span style="color: #0000ff"&gt;int</span> ret=<span style="color: #000000"&gt;<a href="https://www.jb51.cc/tag/fork/" target="_blank" class="keywords">fork()</a>; </span><span style="color: #0000ff"&gt;if</span>(ret><span style="color: #800080"&gt;0</span><span style="color: #000000"&gt;){ pid</span>=<span style="color: #000000"&gt;getpid(); ppid</span>=<span style="color: #000000"&gt;getppid(); printf(</span><span style="color: #800000"&gt;"</span><span style="color: #800000"&gt;我是父进程,pid=%d,ppid=%d,我新建的子进程pid=%d\n</span><span style="color: #800000"&gt;"</span><span style="color: #000000"&gt;,pi

d,ppid,ret);
sleep(<span style="color: #800080">3);<span style="color: #008000">//<span style="color: #008000">父进程不能太快终止,否则看不出子进程ppid的效果
}<span style="color: #0000ff">else <span style="color: #0000ff">if(ret==<span style="color: #800080">0<span style="color: #000000">){
pid=<span style="color: #000000">getpid();
ppid=<span style="color: #000000">getppid();
printf(<span style="color: #800000">"<span style="color: #800000">我是子进程,pid=%d,ppid=%d \n<span style="color: #800000">"<span style="color: #000000">,ppid);
}<span style="color: #0000ff">else <span style="color: #0000ff">if(ret==-<span style="color: #800080">1<span style="color: #000000">){
perror(<span style="color: #800000">"<span style="color: #800000">fork<span style="color: #800000">"<span style="color: #000000">);
}
}

pid=13890,ppid=10038,

pid=13891,ppid=13890 

原文地址:https://www.jb51.cc/linux/69089.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐