bisa kok. kalau anda ingin membalik fungsinya (child menjalankan more,
parent ls) maka input outputnya dibalik juga. child menangkap output,
parent mengeluarkan.

--
sh

At 03:04 PM 2/28/2001, you wrote:
>halo semua,
>
>dibawah ada program yang akan membuat anonymous-pipe utk menghubungkan
>dua proses. (misal proses 1="ls -l /etc" dan proses 2="more")
>
>         char *argv1[] = {"more", NULL};
>         char *argv2[] = {"ls", "-l", "/etc", NULL};
>
>         if (fork()==0)
>         {
>                 pipe(p);
>                 if (fork()==0)
>                 {
>                         /*child*/
>
>                         close(p[0]);
>                         close(1); /*tutup stdout*/
>                         dup(p[1]);
>                         execvp(argv2[0], argv2); /*ls*/
>                 } else
>                 {
>                         /*parent*/
>
>                         close(p[1]);
>                         close(0); /*tutup stdin*/
>                         dup(p[0]);
>                         execvp(argv1[0], argv1); /*more*/
>                 }
>         } else
>         {
>                 wait(NULL);
>         }
>
>dalam program diatas:
>         child menjalankan "ls", dan
>         parent menjalankan "more". --> program jalan
>
>nah, yang jadi masalah, kalau dibalik:
>         child menjalankan "more", dan
>         parent menjalankan "ls". --> program setelah jalan, maka input
>dari shell prompt tidak ditampilkan lagi ke layar.
>
>yang menjadi pertanyaan saya mengapa hal tsb terjadi, apakah ada kesalahan
>dalam kode sumber diatas?
>
>mohon penjelasan dari rekan-rekan.
>
>thanks in advance...


--------------------------------------------------------------------------------
Utk berhenti langganan, kirim email ke [EMAIL PROTECTED]
Informasi arsip di http://www.linux.or.id/milis.php3
Pengelola dapat dihubungi lewat [EMAIL PROTECTED]

Kirim email ke