21xrx.com
2024-12-22 21:45:49 Sunday
登录
文章检索 我的文章 写文章
C++执行Shell命令并获取返回结果
2023-07-05 08:52:49 深夜i     --     --
C++ Shell命令 返回结果 执行 获取

C++ 是一种高级编程语言,它是一种跨平台的编程语言,广泛应用于各种领域。C++ 提供了一个名为 system() 的函数,可以用于执行 Shell 命令并获取返回结果。

System() 函数的原型如下:


int system(const char* command);

其中,command 是要执行的 Shell 命令,函数返回值为命令的执行结果。如果命令执行成功,则返回 0,否则返回一个非零值。

使用 system() 函数可以执行各种 Shell 命令,例如更改目录、创建文件、删除文件等。下面是一个示例代码,演示如何使用 system() 函数执行 Shell 命令并获取返回结果:


#include <stdlib.h>

#include <stdio.h>

int main()

{

  int ret;

  char* command = "ls -l";  // 要执行的 Shell 命令

  char buffer[1024];     // 存储命令执行结果的缓冲区

  

  ret = system(command);   // 执行命令并获取返回结果

  printf("Command returned %d\n", ret);

  

  FILE* fp = popen(command, "r"); // 执行命令并打开命令输出管道

  if (fp == NULL) {

    printf("Failed to run command\n");

    exit(1);

  }

  

  while (fgets(buffer, sizeof(buffer), fp)) {

    printf("%s", buffer);  // 输出命令执行结果

  }

  

  pclose(fp);         // 关闭命令输出管道

  return 0;

}

该示例代码中,首先执行了一个 Shell 命令 "ls -l",并获取其返回结果。然后通过 popen() 函数打开了一个命令输出管道,可以通过读取管道中的数据来获取命令执行结果,最后通过 pclose() 函数关闭了命令输出管道。

需要注意的是,system() 函数存在一些安全性问题,如果要执行受用户输入控制的命令,应该使用更为安全的函数,如 execvp()、execlp() 等。

总之,使用 C++ 执行 Shell 命令并获取返回结果的方法很多,开发者可以根据实际需要选择不同的方法。

  
  
下一篇: C++写情书程序

评论区

{{item['qq_nickname']}}
()
回复
回复