Schreiben Sie ein Vater- und ein Kindprozess. Der Vaterprozess soll an den Kindprozess
ein Text schicken mit der Hilfe des pipe Mechanismus.
Der Kindprozess wird die Azahl der bekommenen Bytes sowie den
Text am Bildschirm anzeigen.
#include "hdr.h"
int main(void)
{
int pfd[2], n; /* pipe Variable, Anzahl der gelesenen Bytes */
pid_t pid;
char buf[MAXLINE]; /* darin wird des Kindprozess die Inf. einlesen */
char test[] = "pipe test\n"; /* der Text, der geschickt wird */
if (pipe(pfd) < 0) /* Erzeugung des Pipes */
err_sys("pipe Fehler");
if ((pid = fork()) < 0) /* Erzeugung des Kindprozesses */
err_sys("fork Fehler");
else
if (pid == 0) /* Kindprozess */
{
close(pfd[1]); /* unbenuetzte pipe schliessen */
n = read(pfd[0], buf, MAXLINE); /* Information auslesen */
printf("ich habe %d Bytes gelesen\n", n);
fflush(stdout);
write(1, buf, n);
}
else /* Vater */
{
close(pfd[0]); /* unbenuetzte pipe schliessen */
write(pfd[1], test, sizeof(test)); /* die Information wird ins Pipe eingeschrieben */
}
exit(0);
}