使用poll / select一次读取一个字节

时间:2012-05-08 21:18:30

标签: c operating-system

我正在尝试读取一个设备的文件描述符。使用poll / select使用以下代码。我能够读取设备的字节。我想知道何时是退出循环的正确时间。我正在读一个字符。它已经读取了我需要从循环中退出的所有字节。我是否实现了这一点。

while (continue_reading) 
{   n = read(radioFd, &rc, 1);
        if(rc == START_OF_FRAME)
        {
             start_buffering = 1;
             printf("SOF found \n");
        }
        if(1 == start_buffering)
        {
             read_buffer[read_count] = rc;
             read_count += n;
        } 
}

1 个答案:

答案 0 :(得分:1)

如果您的设备的行为类似于文件,则必须测试读取返回值(n)为0(文件末尾)。而且你还需要测试它为-1,以识别错误并检查错误。