0

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

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

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

#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);
}

你有什么建议吗?

4

1 回答 1

1

你会更好地计算从 2 到 argc-1(包括)的循环。由于您正在执行 argc-2 分叉,因此您也应该有 argc-2 等待,而不是单个等待。除此之外,您只是在读取文件并在删除指定位后将其写回。

于 2013-04-10T18:40:08.157 回答