这是我作为一个初学者最简单的一个多进程程序。
编译后使用:
# ./a.out 11 22
the number 1 process overd
the number 2 process overd
the number 3 process overd
就是按你的输入分别启动多个进程,在data目录下创建多个文件,每个文件的内容是创建他的进程的PID。
#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);
}
#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/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!
评论列表