stdout redirect


#include 

#include 

#include 



#define MAX_LEN 1024



int main(void)

{

  char buffer[MAX_LEN+1] = {0};

  int out_pipe[2];

  int saved_stdout;



  saved_stdout = dup(STDOUT_FILENO);  /* save stdout for display later */



  if( pipe(out_pipe) != 0 ) {          /* make a pipe */

    exit(1);

  }



  dup2(out_pipe[1], STDOUT_FILENO);   /* redirect stdout to the pipe */

  close(out_pipe[1]);



  /* anything sent to printf should now go down the pipe */

  //printf("ceci n'est pas une pipe");

  system("adb shell ls");

  fflush(stdout);



  read(out_pipe[0], buffer, MAX_LEN); /* read from pipe into buffer */



  dup2(saved_stdout, STDOUT_FILENO);  /* reconnect stdout for testing */

  printf("read: %sn", buffer);



  return 0;



}

Advertisements

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

w

%s에 연결하는 중