Ahojte,
v skole nam dali za ulohu urobit jeden program, ktory je zlozeny z rodica a potomka. Rodic ma zapisat do nepomenovanej rury text malymi pismenami a potomok ho precitat a vypisat velkymi. Len moj problem je ten, ze ten text neviem nijak raz cez tu ruru preniest... Prosim o radu, pomoc, cokolvek.
rodic.c:
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int pid;
int file_pipes[2];
const char text[] = "hello world!";
pipe(file_pipes);
pid=fork();
write(file_pipes[1], text, strlen(text));
switch(pid)
{
case -1:
perror("Nepodarilo sa vytvorit potomka.");
break;
case 0:
execve("potomok", NULL, NULL);
break;
case 1:
printf("Ja som rodic...");
break;
}
}
potomok.c (neskor skompilovany ako "potomok")
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int file_pipes[2];
int data;
char buffer[BUFSIZ+1];
memset(buffer, '\0', sizeof(buffer));
data = read(file_pipes[0], buffer, BUFSIZ);
printf("Vypis pipe: %s\n", buffer);
exit(EXIT_SUCCESS);
}
Mam taku predtuchu, ze mi tam CuroBOT prida niekolko zbytocnych lomitiek pred uvodzovky :)