最简单C语言的fork程序

jackxiang 2009-3-26 14:30 | |
这是我作为一个初学者最简单的一个多进程程序。



#include <sys/types.h>
#include <sys/stat.h>
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>

int
main(int argc,char *argv[])
{
int i,fd;
char buf[1024];
pid_t pid;
for(i=1;i<argc;i++)
{
        if((pid = fork())<0)
                printf("fork error:no=%d\n",i);
        else if(pid == 0)
        {//子进程
                chdir("data");
                fd = open(argv[i],O_CREAT|O_TRUNC|O_WRONLY,S_IRWXU|S_IRWXG|S_IRWXO);
                sprintf(buf,"pid:%d\n",getpid());
                write(fd,buf,strlen(buf));
                break;
        }
}
printf("the number %d process overd\n",i);
waitpid(pid,NULL);
exit(0);
}




编译后使用:

# ./a.out 11 22
the number 1 process overd
the number 2 process overd
the number 3 process overd

就是按你的输入分别启动多个进程,在data目录下创建多个文件,每个文件的内容是创建他的进程的PID。

作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:https://jackxiang.com/post/1668/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!

评论列表
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]