相关疑难解决方法(0)

C:运行系统命令并获取输出?

可能重复:
如何从C运行外部程序并解析其输出?

我想在linux中运行一个命令,并返回它输出的文本,但我希望这个文本打印到屏幕上.有没有比制作临时文件更优雅的方式?

c linux system

129
推荐指数
2
解决办法
23万
查看次数

如何从C运行外部程序并解析其输出?

我有一个实用程序可以输出游戏所需的文件列表.如何在C程序中运行该实用程序并获取其输出,以便我可以在同一程序中对其执行操作?

更新:很好地呼吁缺乏信息.该实用程序吐出一系列字符串,这应该是完全可移植的Mac/Windows/Linux.请注意,我正在寻找一种程序化的方法来执行该实用程序并保留其输出(转到stdout).

c external-process

59
推荐指数
4
解决办法
6万
查看次数

最佳地从system()命令捕获stdout

我正试图通过system()- 例如,启动外部应用程序system("ls").我希望捕获它的输出,因此我可以将它发送到另一个函数进行进一步处理.在C/C++中最好的方法是什么?

c c++ stdout system

52
推荐指数
4
解决办法
8万
查看次数

如何从C++程序运行bash脚本

Bash脚本非常有用,可以节省大量的编程时间.那么如何在C++程序中启动bash脚本呢?此外,如果你知道如何让用户成为超级用户也会很好.谢谢!

c++ linux bash shell

46
推荐指数
5
解决办法
10万
查看次数

如何从C++程序执行命令行命令

如何在c ++中执行命令行"asterisk -rx"reload""?请帮忙.我需要一个例子.我正在使用ubuntu服务器,我想从用户(在webservice内)执行此命令行.

需要帮助欣赏

c++ ubuntu

24
推荐指数
2
解决办法
7万
查看次数

从C++调用Python脚本并使用其输出

我想从C++调用一个python脚本,并希望将此脚本生成的输出.csv文件重新用于C++.我在main()中试过这个:

std::string filename = "/home/abc/xyz/script.py";
std::string command = "python ";
command += filename;
system(command.c_str());
Run Code Online (Sandbox Code Playgroud)

这会调用并执行python脚本.

print在Python命令正在执行.调用脚本时,屏幕上会打印出一些内容.到现在为止还挺好.但是,它不是创建.csv文件(同一脚本的一部分).

示例:我有一个training.csv包含100个条目的文件.我调用了Python脚本,对脚本几乎没有任何更改,因此training.csv文件现在应该只包含50个条目而不是100个.它被覆盖了.但是,没有这样的事情发生.脚本中的其他命令(print等)工作正常.

training.csv文件是用C++通常使用来读取fstreamgetline.

知道怎么做(使用Linux)吗?

c++ python python-2.7 python-3.x

23
推荐指数
2
解决办法
6万
查看次数

c popen不会抓住stderr

我正试图用来popen()捕捉一个电话的stderr,但当然它似乎并没有这样做.有任何想法吗?

我的代码看起来或多或少像这样:

popen("nedit", "r");
Run Code Online (Sandbox Code Playgroud)

但是我在屏幕上得到了关于非utf8的所有垃圾......

c popen stderr

22
推荐指数
2
解决办法
2万
查看次数

GNU较小的GPL,应用程序出售?

可能重复:
在商业Java应用程序中使用LGPL库

大家好!

根据GNU Lesser GPL许可证有一个项目.我想在我的应用程序中使用这个项目.我可以使用此许可证销售我的申请吗?

licensing lgpl

13
推荐指数
3
解决办法
2万
查看次数

从C++程序在Linux中运行另一个程序

好的,我的问题是这个.假设我有一个简单的C++代码:

#include <iostream>
using namespace std;

int main(){
   cout << "Hello World" << endl;
   return 0;
}
Run Code Online (Sandbox Code Playgroud)

现在说我有这个程序,我想在我的程序中运行,称之为prog.在终端中运行此操作可以通过以下方式完成:

./prog
Run Code Online (Sandbox Code Playgroud)

有没有办法从我简单的C++程序中做到这一点?例如

#include <iostream>
using namespace std;

int main(){
   ./prog ??
   cout << "Hello World" << endl;
   return 0;
}
Run Code Online (Sandbox Code Playgroud)

任何反馈都非常有必要.

c++ unix linux terminal

13
推荐指数
3
解决办法
3万
查看次数

如何读取尚未刷新的过程输出?

考虑将这个小程序编译为 application.exe

#include <stdio.h>

int main()
{
    char str[100];
    printf ("Hello, please type something\n");
    scanf("%[^\n]s", &str);
    printf("you typed: %s\n", str);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

现在我使用此代码启动application.exe并获取其输出.

#include <stdio.h>
#include <iostream>
#include <stdexcept>

int main()
{
    char buffer[128];
    FILE* pipe = popen("application.exe", "r");
    while (!feof(pipe)) {
        if (fgets(buffer, 128, pipe) != NULL)
            printf(buffer);
    }
    pclose(pipe);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,在我输入之前没有输出.然后获取两个输出行.我可以通过在第一个printf语句后添加此行来解决此问题.

fflush(stdout);
Run Code Online (Sandbox Code Playgroud)

然后在我按预期输入之前获取第一行.

但是,如何获取我无法修改且不能fflush()在"实时"中使用的应用程序的输出(在退出之前的意思)?.windows cmd是如何做到的?

c++ winapi stdout process unbuffered

12
推荐指数
3
解决办法
1296
查看次数