Linux   发布时间:2022-04-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何在循环中连续打印变量,并在Linux下用C命中一个转义键终止?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

参见英文答案 > C non-blocking keyboard input                                    10个 请在下面找到代码部分.我想在循环中连续打印变量的当前值.一旦我按下转义键,就必须终止循环.这里的问题是执行在getchar函数处停止.但我希望它继续并打印变量的值,直到我点击退出按钮. do { vupdateVariable();
参见英文答案 > C non-blocking keyboard input                                    10个
请在下面找到代码部分.我想在循环中连续打印变量的当前值.一旦我按下转义键,就必须终止循环.这里的问题是执行在getchar函数处停止.但我希望它继续并打印变量的值,直到我点击退出按钮.

do
{
     vupdateVariable();        // routIne to update the current value of variable
     printf("Value is %f\r",fVariablE); 
     ucKey = getchar();
     usleep(1000);
}while (ucKey != 0x1B);

解决方法

有很多@L_801_5@可以做到这一点,包括提到 here,但我个人最喜欢的是使用叉子和信号.在每次循环迭代中,这比非阻塞操作更有效(不会浪费系统调用,因此不会浪费上下文切换).

你有效地分配一个工作进程来执行循环,安装一个信号处理程序,如USR1然后让你的父进程等待一个按键阻塞,一旦它收到所需的密钥,它就可以将uSR1信号发送到另一个进程,这将导致信号处理程序清理并终止.

有关详细信息,请参阅这些:

> http://linux.die.net/man/2/fork
> http://man7.org/linux/man-pages/man7/signal.7.html

我还要注意,这个解决方案适用于任何阻塞情况,您可以使用非阻塞IO进行修复,并且通常会节省一些cpu时间,尽管在创建fork时会花费一点内存和cpu.

大佬总结

以上是大佬教程为你收集整理的如何在循环中连续打印变量,并在Linux下用C命中一个转义键终止?全部内容,希望文章能够帮你解决如何在循环中连续打印变量,并在Linux下用C命中一个转义键终止?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。