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);
}