#include
#include
#include
//BURADA ÇOCUK PROSES YAZMA İŞLEMİ YAPACAK VERİ YOLLAYACAK ANA POSES İSE VERİ ALACAK OKUMA YAPACAK
// YADA ANA PROSES YAZACAK COCUK PROSES OKUYACAK
//fd[0] okuma fd[1] ise Yazma Bölümü Buna Göre Eger Cocuk pidsi 0 da ise Okuma(fd[0] )Kısmı Kapalı Olmalı Çünkü Yazma Yapacak
//Cocuk pidsi 0 degil ise Yazma (fd[1] )Kısmı Kapalı Olmalı Çünkü Okuma Yapacak
int main(void)
{
int fd[2], nbytes; //Pipe dizisi Degiskeni
pid_t childpid; //Pid Degiskeni
char string[] = "Hello, world!\n"; // yollanacak String
char readbuffer[80];
pipe(fd); //Boru oluşturuldu
if((childpid = fork()) == -1) //Eger Sonuc -1 ise Cocuk Proses Oluşturulamadı ..Sonuc 0 ise oluştu
{
perror("fork");
exit(1);
}
//pid 0 ise cocuk proses okuma kısmında biz Okuma Kısmı Olan fd[0] yı
//kapatıoyruz ve yazmaya baaslıyoruz
if(childpid == 0)
{
/* Child process closes up input side of pipe */
close(fd[0]);
/* Send "string" through the output side of pipe */
write(fd[1], string, (strlen(string)+1));
exit(0);
}
else
{
/* Parent process closes up output side of pipe */
close(fd[1]);
/* Read in a string from the pipe */
nbytes = read(fd[0], readbuffer, sizeof(readbuffer));
printf("Received string: %s", readbuffer);
}
return(0);
}