GNU/Linux >> Belajar Linux >  >> Linux

Cara membuat contoh pipa linux di c

Coba ini:

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>

int main(int argc, char** argv)
{
 int pipefd[2];
 int childpid,childpid2;
 char* cmd[3]={"ls",NULL,NULL};
 char* cmd2[3]={"grep",".c",NULL};
 pipe(pipefd);
 if(childpid=fork()){
   //parent
   close(pipefd[1]);
   dup2(pipefd[0],STDIN_FILENO);
   execvp("grep",cmd2);
 }else{  
   //child
   //write
   close(pipefd[0]);
   dup2(pipefd[1],STDOUT_FILENO);
   execvp("ls", cmd);
 }
 return 0;
}

Sebenarnya program langsung keluar — sebenarnya, proses induk keluar sebelum anak-anak berjalan, itulah sebabnya ada prompt shell sebelum "test.c".

Anda dapat sedikit menyempurnakannya dengan menambahkan ini di induk Anda:

wait(childpid);
wait(childpid2);

yang akan membuat orang tua keluar setelah kedua anaknya.


Linux
  1. Cara Membuat Script Perintah Linux

  2. Cara Membuat Swap di Linux

  3. Cara membuat layanan Systemd di Linux

  1. Cara membuat paket RPM Linux

  2. Cara membuat file swap di Linux

  3. Cara Membuat Thread di Linux (Dengan Program Contoh C)

  1. Cara Membuat Partisi di Linux

  2. Cara membuat repositori rpm khusus di Linux

  3. Cara membuat Pengguna Linux Menggunakan Ansible