发送字符到控制台应用程序

时间:2018-02-05 11:54:46

标签: c++ linux ubuntu

我有一个简单的控制台应用程序,它在终端窗口中运行读取和打印字符:

int main(int argc, char **argv, char **envp)
{
    while (true)
    {
        char c =getchar();
        printf("%c \n",c);

    }

}

现在我想在第一个应用程序终端中创建可以模拟字符印刷的测试应用程序。

我该走哪条路?我应该为此目的使用哪些API函数?

2 个答案:

答案 0 :(得分:2)

无需特殊API或其他任何内容。由于您的示例应用程序仅从标准输入读取,因此您只需将内容发送到那里。

在终端中运行程序之前,请使用tty命令检查其连接的终端。然后将数据发送到tty报告的tty。

或者,抓住正在运行的应用程序的PID并将数据发送到/proc/$PID/fd/0,这样您就不需要检查tty。

答案 1 :(得分:0)

只需将测试数据传输到您的流程:

echo "some test data" | ./myprogram

(问题中的示例程序将读取并打印来自"某些测试数据")的每个字母。

这还有很多其他变化。阅读有关shell和shell管道的信息。