21 Ocak 2016 Perşembe

Process ve ChildProses İle Read/Write


#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]  
//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);
}

Share: