如何确定linux串口上剩余的写入/输出缓冲区空间量?

您可以使用ioctl确定从linux下的串行端口读取的数据量.是否可以确定写入时串口的剩余缓冲区空间?实际上,我想将一个数据块写入一个串行端口,只有当它可以一次性卸载时才能成功,或者如果它必须被分块则失败.对端口的写入和读取是非阻塞的.我不希望这是UART缓冲区,而是UART缓冲区之前的内核内存缓冲区(我猜).

解决方法:

您可以确定写入/输出量.

如需阅读:

ioctl(device_handler, TIOCINQ, &bytes);

写作:

ioctl(device_handler, TIOCOUTQ, &bytes);

FIFO缓冲区的大小:

serial_struct serinfo;
memset(&serinfo, 0, sizeof(serinfo));
ioctl(device_handler, TIOCGSERIAL, &serinfo);
serinfo.xmit_fifo_size;

问候,
VA.

上一篇:Reservoir Sampling 蓄水池采样算法


下一篇:Linux内核模块 – IOCTL用法返回ENOTTY