В вашем коде отсутствует ;
, поэтому он не будет компилироваться без ошибок. Кроме того, l oop не выводит нужный вам текст.
Вместо этого рассмотрим следующее:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int
main()
{
pid_t pid;
char *child = "child";
char *parent = "parent";
char *me;
pid = fork();
if (pid < 0) {
perror("fork()");
exit(EXIT_FAILURE);
} else if (pid == 0)
me = child;
else
me = parent;
for (int i = 0; i < 2; ++i)
printf("%s: counter is %d\n", me, i + 1);
return EXIT_SUCCESS;
}
Это вызывает fork()
и определяет, является ли текущий процесс дочерним. или родитель. В зависимости от того, что это, мы указываем me
на правильную строку и вводим короткий l oop, который просто печатает нашу строку и счетчик.
Вывод может быть
parent: counter is 1
parent: counter is 2
child: counter is 1
child: counter is 2