Linux使用system()获取执行结果

include<stdlib.h>

include<stdio.h>

include<string.h>

include<unistd.h>

static int getResultFromSystemCall(const char pCmd,char pResult,int size)

{

 int fd[2];

 if(pipe(fd)){

   printf("pipe error ! \n");

   return -1; 

 }

 int bak_fd = dup(STDOUT_FILENO);

 int new_fd = dup2(fd[1],STDOUT_FILENO);



  system(pCmd);

  read(fd[0],pResult,size-1);

  pResult[strlen(pResult)-1] = 0;



 dup2(bak_fd,new_fd);

 return 0;

}

int main()

{

  char res[100]={0};

  getResultFromSystemCall("date",res,sizeof(res)/sizeof(res[0]));

printf("result is :[%s] \n",res);



}


sitemap