循环阻止功能

时间:2018-12-12 07:05:01

标签: c

如果将阻塞函数放入C程序的循环中会发生什么?例如: 我有一个名为os_io_read()的函数,该函数基本上读取串行(RS232)输入缓冲区,并等待直到缓冲区中的某些输入来自其他设备。现在,如果我将此函数放在for(;;)循环中,它是否仍将等待数据,否则循环将继续。就我而言,我有一个运行Linux OS的硬件设备,并且如果我尝试以上述方式执行C程序,则硬件将进入ERROR模式。

我希望我的问题清楚。

2 个答案:

答案 0 :(得分:0)

如果os_io_read()阻止,则阻止。将其放在for循环中不会影响此行为。

答案 1 :(得分:0)

如果将其放入循环中,它将重复执行其工作。循环不会以任何方式影响其中的内容。

通常,如果要处理“实时”方面带来的问题,则最好不要使用阻塞-因此,您始终拥有控制权。请改用非阻塞,并检查返回代码是否读取了内容或只是没有数据返回。