我正在尝试解决一个问题,但我不知道我必须做什么。问题是:
"创建一个父进程,从命令行接收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);
}
你有什么建议吗?
最佳答案
您最好从 2 到 argc-1(含)计算循环。由于您正在执行 argc-2 fork ,因此您也应该等待 argc-2 而不是一次等待。除此之外,您只是读入一个文件并在删除指定位后将其写回。
关于linux - Unix - 使用 fork() 的进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15933684/