-->
g2QFCKwavghUp2yzjKrIFwEeG13RASCerFTCMH35

Pengertian Pipes

  
 Ada 2 jenis pipe, yaitu Named Pipe dan Unnamed Pipe. Namun metode pipe yang sering digunakan adalah named pipe. Keuntungan named pipe adalah kemampuan untuk mengkomunikasikan dua proses yang dimulai secara independent, dimana salah satu proses tidak fork off sebuah proses baru.
     Named pipe bisa juga disebut FIFO karena prinsip kerjanya FIFO. Data yang pertama kali ditulis di pipe adalah data yang pertama dibaca.  Named pipe digunakan untuk 2 proses yang berjalan sendiri-sendiri dan hanya bisa digunakan pada proses-proses yang menggunakan filesystem yang sama. Secara umum, named pipe yaitu metode yang menggunakan file bertipe pipe file yang diciptakan terlebih dahulu oleh salah satu proses dengan menggunakan mkfifo, kemudian proses yang lain membacanya.

Berikut adalah langkah-langkah membuat named pipe :


Write Process :

1. Deklarasi variabel
     Variabel pertama bertype char pointer (char *fifo), di mana variabel fifo tersebut berisi lokasi yang akan digunakan untuk membuat file pipe, misal lokasinya adalah "/tmp/fifo/". Maka deklarasinya adalah :

               char *fifo = "/tmp/fifo/";

     Variabel kedua adalah variabel bertype integer yang akan digunaka untuk membuka file pipe tadi (int fd) dan juga variabel array of integer untuk ditulis ke dalam file pipe tersebut (arr[100]). Maka deklarasinya adalah :

               int fd,arr[100];

2. Membuat file pipe
     File pipe bisa dibuat melalui perintah mkfifo, di mana salah satu parameternya adalah 0666, yaitu menandakan bahwa file pipe tersebut bisa di read dan write.

               mkfifo(fifo,0666);

3. Membuka file pipe
     File pipe yang tadi telah kita buat kemudian dibuka dengan menggunakan perintah "open", lalu dimasukkan ke dalam variabel integer yang telah kita buat tadi.Parameter ke dua isikan dengan "O_WRONLY" yang dimaksudkan untuk file tersebut dibuka dengan dalam mode write only.

               fd = open(fifo,O_WRONLY);

4. Menuliskan isi file pipe
     Menuliskan isi file pipe bisa menggunakan perintah "write".

               write (fd,arr,sizeof(arr));

5. Menutup file pipe
     Menutup file pipe bertujuan agar file pipe tersebut tidak akan diakses terus menerus. Menutup file pipe menggunakan perintah "close"

               close(fd);

6. Menghapus file pipe
     Menghapus file pipe menggunakan perintah "unlink";
  
               unlink(fifo);

Read Process :


1. Deklarasi variabel

     Variabel pertama bertype char pointer (char *fifo), di mana variabel fifo tersebut berisi lokasi yang telah digunakan untuk membuat file pipe, misal lokasinya adalah "/tmp/fifo/". Maka deklarasinya adalah :

               char *fifo = "/tmp/fifo/";

     Variabel kedua adalah variabel bertype integer yang akan digunaka untuk membuka file pipe tadi (int fd) dan juga variabel array of integer untuk ditulis ke dalam file pipe tersebut (arr[100]). Maka deklarasinya adalah :

               int fd,arr[100]; 

2. Membuka file pipe
     File pipe yang tadi telah kita buat kemudian dibuka dengan menggunakan perintah "open", lalu dimasukkan ke dalam variabel integer yang telah kita buat tadi.Parameter ke dua isikan dengan "O_RDONLY" yang dimaksudkan untuk file tersebut dibuka dengan dalam mode read only.



               fd = open(fifo,O_RDONLY);

3. Membaca isi file pipe
     Membaca isi file pipe bisa menggunakan perintah "read".



               read (fd,arr,sizeof(arr));

4. Menutup file pipe
     Menutup file pipe bertujuan agar file pipe tersebut tidak akan diakses terus menerus. Menutup file pipe menggunakan perintah "close"

               close(fd);

Kode Program

Write Process :

               char *fifo = "/tmp/fifo/";
               int fd,arr[100];
               mkfifo(fifo,0666);
               fd = open(fifo,O_WRONLY);
               write (fd,arr,sizeof(arr));
               close(fd);
               unlink(fifo);

Read Process :

               char *fifo = "/tmp/fifo/";
               int fd,arr[100]; 
               fd = open(fifo,O_RDONLY);
               read (fd,arr,sizeof(arr));
               close(fd);

Sumber :demsyos.blogspot.co.id
Related Posts

Related Posts

Post a Comment