找回密码
 注册
查看: 523|回复: 5

高手解答fork问题

[复制链接]
发表于 2004-11-19 17:40:37 | 显示全部楼层 |阅读模式
如何在一个主线程中创建多个子线程,利用fork()!!
请给出简单示例,谢谢!

班主出过注意,可是我还是不会做,班主可不可以给一个例子。
发表于 2004-11-19 18:19:21 | 显示全部楼层
[code:1]
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>

main()
{
    pid_t main_pid;
    main_pid=getpid();
    fork();
    if(getpid() == main_pid)
        fork();
    printf("current pid is:%d\n",getpid());
}

[/code:1]
回复

使用道具 举报

 楼主| 发表于 2004-11-19 19:36:55 | 显示全部楼层
这只是创建一个子进程啊,如何创建多个子进程???

循环应该加在什么地方合适呢?
回复

使用道具 举报

 楼主| 发表于 2004-11-19 19:46:41 | 显示全部楼层
我是创建不止一个子线程,例如创建10个或用户指定的个数,该怎么做??

麻烦了,多谢指点!!
回复

使用道具 举报

发表于 2004-11-19 20:31:01 | 显示全部楼层
上面的程序创建了两个子进程,不是一个。
你要创建进程还是线程?
[code:1]
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>

main()
{
    pid_t main_pid;
    main_pid=getpid();
    int i;
    for(i=0;i<10;i++)
    {
        if(getpid() == main_pid)
            fork();
     }
    printf("current pid is:%d\n",getpid());
}
[/code:1]
回复

使用道具 举报

 楼主| 发表于 2004-11-19 20:35:09 | 显示全部楼层
多谢版主 :-)  :-)  :-)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2025-2-11 21:29 , Processed in 0.023326 second(s), 15 queries .

© 2001-2025 Discuz! Team. Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表