Мне нужна помощь с программированием на C, у меня есть вопрос, который требует от меня создания произвольного числа дочерних процессов, каждый из которых выполняет функцию дочернего процесса. Предполагается, что число дочерних процессов указывается в качестве аргумента командной строки, и в функции дочернего процесса она должна выполнить случайное число итераций в простом цикле, а затем вывести «Child X», где X предоставляется в качестве аргумента. Если бы кто-нибудь мог помочь мне в этом, это было бы здорово!
Я пробовал это, но я не понимаю, как процессы работают в C.
Измененный код
#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
int main(int argc, char **argv) {
int counter;
pid_t pid = getpid();
int x = atoi(argv[1]); // Changed (added)
printf("Parent Process, my PID is %d\n", pid);
for(counter=1;counter <= x;counter++){ // Changed
if(!fork()){
printf("Child %d is born, my PID is %d\n", counter, getpid()); // Changed
childprocess(counter);
printf("Child %d dies\n", counter);
exit(0);
}
}
}
void childprocess(int num){
int i = 1;
while(i <= num){
printf("Child %d executes iteration: %d\n", num, i); // Changed
i++;
}
}
Оригинальный код
#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
int main(int argc, char **argv) {
int counter;
pid_t pid = getpid();
printf("Parent Process, my PID is %d\n", pid);
for(counter=1;counter <= argv[1];counter++){
if(!fork()){
printf("Child %d is born, my PID is %d\n", counter, pid);
childprocess(counter);
printf("Child %d dies\n", counter);
exit(0);
}
}
}
void childprocess(int num){
int i = 1;
while(i <= num){
printf("Child %d executes iteration: %d\n", i);
i++;
}
}