当前位置: 首页 > 知识库问答 >
问题:

linux - 如何在C中调用bash指令并获得输出?

郎曾笑
2023-09-11

Hello!.
我发现system函数可以调用bash语句,但不能回收结果.
现在我的方案是中调用的bash语句里把输出重定向到某个文件,然后在C语言中去读那个文件的内容.
我感觉这样非常别扭,有没有更合适的方案?

共有1个答案

蒯嘉赐
2023-09-11

可以用 popen 打开一个管道。

FILE *pipe = popen("ls", "r");
 类似资料:
  • 我很难找到关于这些命令的功能、返回什么以及如何在C++中的应用程序中获得它们的信息。这是一个练习,这就是我需要如何获得我将从中读取的输入文件和我将向其写入的输出文件: 我试图使用: 谢谢!

  • 如果git bash也可以apt-get install就好了,那么我就可以安装更多的命令,并且可以管理这些命令。实际上git bash只能执行一些少的可怜的命令,我想在git bash中获得linux终端的体验,可以吗?该如何去做?

  • 问题内容: 我正在使用Groovy在我的Linux机器上执行命令并返回输出,但是我无法以某种方式使用管道(我认为),或者它可能没有在等待命令完成。 有什么问题或我的代码中缺少什么? 我的调用函数: 文件内容(更新:添加了exitVal println): 我的输出(更新:添加了exitVal值): 注意:我在内部使用。 问题答案: 您不能使用进行管道或重定向。这在Java中不起作用,因此在Groo

  • 我想让我的Bash脚本对最终用户来说更加优雅。当Bash执行命令时,如何隐藏输出? 例如,当Bash执行时 以下内容将显示给执行Bash的用户: 现在我想对用户隐藏这一点,而是显示: 我怎样才能完成这项任务?我一定会帮助使脚本更加用户友好。如果发生错误,则应向用户显示。 我想知道如何显示相同的消息,而一组命令正在执行。

  • 问题内容: 我正在尝试获取%的总CPU使用率。首先,我首先要说“ top”根本不会做,因为cpu转储之间会有延迟,它需要2个转储和几秒钟的时间,这使我的程序挂起(我不想给它自己的线程) 我尝试的下一件事情是“ ps”,它是即时的,但总的总数总是很高(超过20),当我实际上让我的cpu做某事时,它保持在20左右… 还有其他方法可以获取总的CPU使用率吗?超过一秒还是更长的时间都没有关系……但是更长的

  • Hello!. 我在程序里写了很多类似 system("echo 123 >> 1.txt"); 这种,来代替本来打开文件进行读写的代码. 我开始担心这会不会降低程序的效率?相比起直接用C的API进行文件读写.