Итак, у меня проблема с моим кодом, и это сводит меня с ума, так как я не могу понять, что является причиной этого. По сути, я пытаюсь записать в файл, который я открыл, используя несколько дочерних процессов с помощью fork (). Перед тем, как начать разветвление, я могу написать в него нормально, но как только я выполню разветвление и ТО, сделав оператор if, чтобы увидеть, является ли это дочерним процессом, он не запишет.
В основном, у меня есть это:
FILE *output = NULL;
output = fopen(...); // Done successfully
fprintf(output, "This writes okay\n");
// Fork n processes
for (i = 0; i <= n; n++)
{
pid[i] = fork();
fprintf(output, "We can still write\n");
if (pid[i] == 0) // Child process
{
fprintf(output, "This won't write to output\n");
printf("I can still write and calculate stuff otherwise\n");
...
}
}
Может кто-нибудь выяснить, почему он не может писать после проверки, является ли это дочерним процессом? В том, что я видел, нет никаких ошибок при разветвлении.