64,637
社区成员
发帖
与我相关
我的任务
分享
char buffer[4068];
FILE* pipe = _popen(cmd, "r");
if (!pipe)
{
strcat(result, "erroe");
}
while (!feof(pipe)) {
if (fgets(buffer, 4068, pipe)) {
strcat(result, buffer);
}
}
_pclose(pipe);
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
int main(int argc, char **argv)
{
int fpipe[2] = {0};
pid_t fpid;
char buff[4068];
memset(buff, 0, sizeof(buff));
if (pipe(fpipe) < 0)
{
perror("piple:");
return -1;
}
fpid = fork();
if (fpid < 0)
{
perror("fork:");
return -1;
}
if (fpid == 0)
{
close(fpipe[0]);
dup2(fpipe[1],STDOUT_FILENO);
system(cmd);
}
else
{
fflush(stdout);
close(fpipe[1]);
read(fpipe[0], buff, 4096);
std::cout << "run cmd" return:";
std::cout << buff << std::endl;
}
return 0;
}