Итак, этот мой приятель приходит с просьбой о помощи с некоторыми вещами с форком / каналом, и его код не работает.
Сначала я объяснил, что это беспорядок, но потом я начал читать еще немного, начал отбрасывать все, что могло быть не так, и закончил с этим.
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <wait.h>
typedef void (*tFunction)();
pid_t CreateProcess(tFunction toExecute){
pid_t pid = fork();
if(pid)return pid;
else {toExecute();exit(0);}
}
void Producer_1(){
printf("IM PROCESS 1\n");
printf("Why I no print");
while(1){}
}
int main(){
CreateProcess(Producer_1);
wait(0);
}
С как выход:
После этого он держится, но что здесь с printf?
Если вы поместите новую строку в конце последней строки, это сработает.