amarullz

pipe1

Jul 3rd, 2015
288
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.64 KB | None | 0 0
  1. byte lart_init_runtime(){
  2.   int host_pipes[2];
  3.   int remote_pipes[2];
  4.   pipe(host_pipes);
  5.   pipe(remote_pipes);
  6.  
  7.   lart()->mpid  = getpid();
  8.   pid_t pid     = fork();
  9.   if (pid==0){
  10.     /* system ui */
  11.     lart()->spid = getpid();
  12.     lart()->rfd  = remote_pipes[0];
  13.     lart()->wfd  = host_pipes[1];
  14.     close(remote_pipes[1]);
  15.     close(host_pipes[0]);
  16.     return 2; /* sysui process */
  17.   }
  18.   else if (pid){
  19.     lart()->spid = pid;
  20.     lart()->rfd  = host_pipes[0];
  21.     lart()->wfd  = remote_pipes[1];
  22.     close(host_pipes[1]);
  23.     close(remote_pipes[0]);
  24.     return 1; /* manager process */
  25.   }
  26.   return 0; /* failed */
  27. }
Advertisement
Add Comment
Please, Sign In to add comment