相关疑难解决方法(0)

在C中提取dos命令输出

使用system()exec(),我可以获得任何执行命令,但是它们会将结果显示在控制台中.我想执行命令并提取输出并处理它,然后显示它.如何在Windows/DOS平台上实现此目的?

c system dos exec

4
推荐指数
1
解决办法
2362
查看次数

将系统(文件)命令的输出存储为 C 中的字符串

要获取文件的类型,我们可以执行命令

system("file --mime-type -b filename");
Run Code Online (Sandbox Code Playgroud)

输出显示在终端中。但无法使用该命令存储文件类型

char file_type[40] = system("file --mime-type -b filename");
Run Code Online (Sandbox Code Playgroud)

那么如何使用 system(file) 函数将文件类型存储为字符串。

c c++

4
推荐指数
1
解决办法
6109
查看次数

获取管道中的命令输出,C代表Linux

我需要运行Linux CLI命令并从C获取其stdout输出.

我可以使用pipe()创建一个管道,然后使用fork/exec,在调用exec()之前将child的stdout描述符重定向到管道,并从父管道中读取.另外,我需要等孩子.

是否有一个简单的调用fork + redirect + exec + wait,就像system()执行fork + exec + wait一样,只有system()不执行重定向.

有popen(),它执行fork + redirect + exec,但是没有等待,所以我无法获得退出状态.

c linux api pipe process

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

ISO C禁止在C中使用空的初始化程序括号

我有这样的结构:

typedef struct
{
   int a;
   int b;
   int c;
   int d;
} Hello;
Run Code Online (Sandbox Code Playgroud)

然后我以这种方式宣布它:

Hello hello[6] = {};
Run Code Online (Sandbox Code Playgroud)

然后我收到了这个警告:ISO C禁止空初始化器括号,无论如何我认为我需要初始化它,如何以正确的方式做到这一点?

c arrays struct initialization

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

执行system()命令时执行其他任务

我有这个c ++程序在指定的IP地址上进行简单的ping操作.我没有进入网络,所以我只是在c ++中使用system()命令从shell执行ping并将结果存储在一个文件中,这很容易.

问题是我想在执行system()命令时在屏幕上打印一些点.我尝试过:

while(system(cmd))
{ 
//execute the task here
}
Run Code Online (Sandbox Code Playgroud)

但没有成功.我认为我应该创建线程或东西.

你能帮助我吗 ?我应该做什么才能按照我的意愿完成这项工作?

c++ linux system

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

如何与另一个外部程序通信程序

我正在尝试写入stdin并从外部程序读取stdout(和stderr),而不更改代码.

我尝试过使用命名管道,但是直到程序终止并且stdin只对第一个输入起作用(然后cin为null)才会显示stdout.

我已经尝试使用/ proc/[pid]/fd,但只能从终端而不是程序进行写入和读取.

我已经尝试为此编写一个字符设备文件并且它可以工作,但一次只能有一个程序(这需要一次为多个程序工作).

在这一点上,据我所知,我可以编写驱动程序,在多个程序中复用io,但我认为这不是"正确"的解决方案.

这样做的主要目的是通过Web界面查看程序的订阅源.我确信必须要做到这一点.有什么我以前没有尝试过的吗?

c linux stdio

2
推荐指数
1
解决办法
291
查看次数

阅读C ex中的按键.回车键

我知道如何使用事件来测试按键的位置,但在C中我从未发现如何做到这一点.

我真正想要的是一个听取上,下,左,右键的Keylistener.我需要它在Linux中工作,所以没有Windows库.如果可能的话,不使用第三方库对我来说是最好的选择.

int main(){

//关键监听器{

// if(key == up){//做某事}

// if(key == down){//做某事}

// if(key == left){//做某事}

// if(key == right){//做某事}

//}

}

c events sdl key keylistener

1
推荐指数
1
解决办法
227
查看次数

标签 统计

c ×6

linux ×3

c++ ×2

system ×2

api ×1

arrays ×1

dos ×1

events ×1

exec ×1

initialization ×1

key ×1

keylistener ×1

pipe ×1

process ×1

sdl ×1

stdio ×1

struct ×1