小编jos*_*urm的帖子

C程序如何在Linux环境中同时执行其他操作的同时轮询用户输入?

背景:

我是一个相对缺乏经验的开发人员,试图编写与PCI运动控制器接口的软件。我在Ubuntu Linux 18.04上使用C(与gcc编译)。

我正在编写的程序需要定期检查运动控制器发送的未经请求的状态消息(大约每秒一次),并将其找到的任何消息显示在终端屏幕上(我正在使用该ncurses库)。

是)我有的:

现在,为此,我正在调用一个函数,该函数在while循环中检查未经请求的消息。该代码大致类似于:

while (1)
{
    // check for messages from PCI and store them in a traffic buffer
    checkForMessages(PCIconnection, trafficBuffer);

    // output the traffic buffer to the screen
    printf("%s", trafficBuffer);    
}
Run Code Online (Sandbox Code Playgroud)

我需要的:

我需要以提示用户输入提示的方式允许他们结束循环。例如,用户可以输入end导致循环停止并且程序继续的信息。

问题:

我不知道有没有fgets在while循环中放进去,导致程序停止并等待用户在每次循环迭代中输入内容的方法。

我一直在寻找解决方案,但是我找不到关于如何实现所需功能的讨论。打开新线程或进程似乎是朝正确方向迈出的一步?

如果我目前不擅长实践,我愿意完全重组我的代码。

感谢您的任何帮助!

c linux

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

标签 统计

c ×1

linux ×1