子进程和主进程得判断一下,否则会运行两次:
cat Makefile
malloc:malloc.c
gcc -g -o malloc -Wall malloc.c
gcc -g -o fork -Wall fork.c
gcc -g -o forkn -Wall forkn.c
clean:
rm -rf malloc
rm -rf fork
rm -rf forkn
查看内存:
ps -o 'pid,ppid,sz,vsz,rss,cmd' -C forkn
=============================================================================
linux中fork同时创建多个子进程的方法
正确的使用Linux中的用fork()由一个父进程创建同时多个子进程 的格式如下:
int status,i;
for (i = 0; i < 10; i++)
{
status = fork();
if (status == 0 || status == -1) break;//每次循环时,如果发现是子进程就直接从创建子进程的循环中跳出来,不让你进入循环,这样就保证了每次只有父进程来做循环创建子进程的工作
}
if (status == -1)
{
//error
}
else if (status == 0) //每个子进程都会执行的代码
{
//sub process
}
else
{
//parent process
}
来自:http://blog.sina.com.cn/s/blog_605f5b4f0100x444.html
cat Makefile
malloc:malloc.c
gcc -g -o malloc -Wall malloc.c
gcc -g -o fork -Wall fork.c
gcc -g -o forkn -Wall forkn.c
clean:
rm -rf malloc
rm -rf fork
rm -rf forkn
查看内存:
ps -o 'pid,ppid,sz,vsz,rss,cmd' -C forkn
=============================================================================
linux中fork同时创建多个子进程的方法
正确的使用Linux中的用fork()由一个父进程创建同时多个子进程 的格式如下:
int status,i;
for (i = 0; i < 10; i++)
{
status = fork();
if (status == 0 || status == -1) break;//每次循环时,如果发现是子进程就直接从创建子进程的循环中跳出来,不让你进入循环,这样就保证了每次只有父进程来做循环创建子进程的工作
}
if (status == -1)
{
//error
}
else if (status == 0) //每个子进程都会执行的代码
{
//sub process
}
else
{
//parent process
}
来自:http://blog.sina.com.cn/s/blog_605f5b4f0100x444.html
作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:https://jackxiang.com/post/6951/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!
最后编辑: jackxiang 编辑于2018-9-26 18:08
评论列表