Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/145.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 向控制台应用程序发送字符_C++_Linux_Ubuntu - Fatal编程技术网

C++ 向控制台应用程序发送字符

C++ 向控制台应用程序发送字符,c++,linux,ubuntu,C++,Linux,Ubuntu,我有一个在终端窗口中运行的简单控制台应用程序,可以读取和打印字符: int main(int argc, char **argv, char **envp) { while (true) { char c =getchar(); printf("%c \n",c); } } 现在我想做一个测试应用程序,可以在第一个应用程序终端中模拟字符按压 我该走哪条路?为此,我应该使用哪些API函数?不需要特殊的API或其他什么。因为您的示例应用程

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

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

    }

}
现在我想做一个测试应用程序,可以在第一个应用程序终端中模拟字符按压


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

不需要特殊的API或其他什么。因为您的示例应用程序只读取标准输入,所以您可以将内容发送到那里


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


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

不需要特殊API或任何东西。因为您的示例应用程序只读取标准输入,所以您可以将内容发送到那里


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


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

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

echo "some test data" | ./myprogram
(问题中的示例程序将读取并打印“某些测试数据”中的每个字母)


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

只需将测试数据导入您的流程:

echo "some test data" | ./myprogram
(问题中的示例程序将读取并打印“某些测试数据”中的每个字母)


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

只需将数据发送到应用程序的stdin。您的意思是让另一个应用程序运行并将您键入的任何字符发送到此应用程序输出?只需将数据发送到应用程序的stdin。您的意思是让另一个应用程序运行并将您键入的任何字符发送到此应用程序输出?“然后将数据发送到tty报告的tty”-只会将数据打印到该终端,而不会将其作为输入提供给程序。因此,将数据发送到
/proc/$PID/fd/0
,因为它连接到tty。“然后将数据发送到tty报告的tty”-这只会将数据打印到该终端,而不会将其作为输入提供给程序。因此将数据发送到
/proc/$PID/fd/0
,因为它已连接到tty。