Я читал в книгах и онлайн-ресурсах, что системный вызов fork() создает копию текущего процесса, и оба процесса запускаются из точки после вызова системного вызова fork(). Правильно ли это?
Если это правильно, то почему код ниже печатает "Test Test"? Он должен печатать "Тест" только один раз (по родительскому процессу).
#include <sys/types.h> /* pid_t */
#include <sys/wait.h> /* waitpid */
#include <stdio.h> /* printf, perror */
#include <stdlib.h> /* exit */
#include <unistd.h> /* _exit, fork */
int main(void)
{
int ctr =1;
int pc = 1;
printf("%s", "Test ");
pid_t pidmain = fork();
return EXIT_SUCCESS;
}