首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过C/C++获取Linux命令的输出?适用于android吗?

问如何通过C/C++获取Linux命令的输出?适用于android吗?
EN

Stack Overflow用户
提问于 2013-03-02 02:28:23
回答 2查看 2K关注 0票数 4

我尝试运行一个Linux命令,并使用C/C++代码读取其中的输出。我搜索exec,但它不处理输入/输出。

我想要实现的是通过使用这个命令iwconfig,从C/C++代码中调用它来获取有关无线局域网的信息。

此外,我需要一个合适的代码来使用它作为库的android使用NDK。

我看到在android开源系统中他们把这个函数叫做

你觉得这段代码怎么样?

代码语言:javascript
复制
int wpa_ctrl_request(struct wpa_ctrl *ctrl, const char *cmd, size_t cmd_len,
                 char *reply, size_t *reply_len,
                 void (*msg_cb)(char *msg, size_t len))
                {
        DWORD written;
        DWORD readlen = *reply_len;

if (!WriteFile(ctrl->pipe, cmd, cmd_len, &written, NULL))
    return -1;

if (!ReadFile(ctrl->pipe, reply, *reply_len, &readlen, NULL))
    return -1;
*reply_len = readlen;

return 0;

}

这是 link

EN

回答 2

Stack Overflow用户

发布于 2013-03-02 02:43:20

您可以尝试运行该命令并将结果输出到一个文件,然后读取该文件

代码语言:javascript
复制
system("iwconfig > temp.txt");
FILE *fp=fopen("temp.txt","w");
票数 3
EN

Stack Overflow用户

发布于 2013-03-02 02:52:26

我看到在android开源系统中他们把这个函数叫做

你觉得这段代码怎么样?

代码语言:javascript
复制
int wpa_ctrl_request(struct wpa_ctrl *ctrl, const char *cmd, size_t cmd_len,
                     char *reply, size_t *reply_len,
                     void (*msg_cb)(char *msg, size_t len))
{
    DWORD written;
    DWORD readlen = *reply_len;

    if (!WriteFile(ctrl->pipe, cmd, cmd_len, &written, NULL))
        return -1;

    if (!ReadFile(ctrl->pipe, reply, *reply_len, &readlen, NULL))
        return -1;
    *reply_len = readlen;

    return 0;
}

这是 link

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15164450

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档