$ cat test.c
#include <stdio.h>
#include <string.h>
int run_and_get_output(const char* cmd, char *output, int max_len)
{
char buffer[1000] = {0};
int len = 0;
int copy_len = 0;
FILE *pipe = NULL;
pipe = popen(cmd, "r");
if (!pipe) {
return -1;
}
while(!feof(pipe)) {
if(fgets(buffer, 1000, pipe) != NULL) {
len = strlen(buffer);
if (copy_len + len < max_len) {
memcpy(output + copy_len, buffer, len);
copy_len += len;
}
//output += buffer;
}
}
pclose(pipe);
return 0;
}
int main(int argc, char *const argv[])
{
char command[20] = "ls -alh";
char out[1000] = {0};
run_and_get_output(command, out, 1000);
out[999] = 0;
printf("out: \n%s\n", out);
return 0;
}
使用函数发送命令行
最新推荐文章于 2022-09-20 21:05:23 发布