4

我尝试运行 Linux 命令并使用 C/C++ 代码从中读取输出。我搜索 exec 但这不处理输入/输出。

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

我还需要一个合适的代码来使用 NDK 将其用作 android 的 lib。

我在android开源中看到他们称之为这个函数

你觉得这段代码怎么样?

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;

}

这是链接

4

2 回答 2

3

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

system("iwconfig > temp.txt");
FILE *fp=fopen("temp.txt","w");
于 2013-03-01T18:43:20.453 回答
0

我在android开源中看到他们称之为这个函数

你觉得这段代码怎么样?

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;
}

这是链接

于 2013-03-01T18:52:26.037 回答