首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Unix -使用fork()的进程

Unix -使用fork()的进程
EN

Stack Overflow用户
提问于 2013-04-11 02:33:29
回答 1查看 142关注 0票数 0

我正在尝试解决一个问题,但我不知道我必须做什么。以下是问题所在:

“创建一个父进程,它从命令行接收n个文件名arg1,arg2,...,argn。父进程创建n-2个子进程。每个子进程接收两个参数: i,argi。如果i>2:从argi文件中删除i的倍数位置上的每个字节,则argi文件将被修改。”

这就是我到目前为止所做的:

代码语言:javascript
复制
#include <stdio.h>
#include <unistd.h>

int main(int argc, char* argv[]){
printf("Creating a child\n");
int i;
for(i=0;i<argc-2;i++){
 if(fork()==0){
 printf("CHILD %d!\n",i+1);
 exit(0);
 }
}
wait(0);
}

你有什么意见建议?

EN

回答 1

Stack Overflow用户

发布于 2013-04-11 02:40:08

最好将循环从2计数到argc-1 (包括2和argc-1)。由于您正在执行argc-2分支,因此您也应该有argc-2等待,而不是单个等待。除此之外,您只需读入一个文件,并在删除指定的位后将其写回。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15933684

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档