Para la comunicación a través del puerto serie en Linux utilizando C, tienes varias opciones de bibliotecas que pueden ofrecerte flexibilidad y facilidad de uso. Aquí te menciono algunas:
1.
termios.h: Como ya mencionaste, esta es la biblioteca estándar en C para la configuración de puertos serie en sistemas Unix/Linux. Te permite configurar parámetros como la velocidad de transmisión, el número de bits de datos, la paridad, etc. Aunque es muy poderosa, puede ser un poco compleja de usar debido a la necesidad de manejar estructuras y configuraciones manualmente.
2.
libserialport: Esta es una biblioteca de C que proporciona una interfaz más sencilla y portátil para la comunicación serie. Es compatible con múltiples plataformas (Windows, Mac OS X, Linux, BSD) y puede ser una buena opción si buscas algo más fácil de usar que termios.h. Puedes encontrar más información y el código en su repositorio de GitHub (
https://github.com/libserialport/libserialport).
3.
wjdwood/serial: Si prefieres trabajar con C++, esta biblioteca es una opción excelente. Proporciona una interfaz moderna y fácil de usar para la comunicación serie, similar a PySerial en Python. Es compatible con Linux y OS X, así como con Windows. Puedes revisar su repositorio en GitHub (
https://github.com/wjwwood/serial) para más detalles.
4.
libserial: Otra opción es esta biblioteca que también está diseñada para facilitar la comunicación serie en C++. Ofrece una interfaz orientada a objetos y es bastante fácil de usar. Puedes encontrar más información en su sitio web (
http://libserial.sourceforge.net/).
5.
Boost.Asio: Si estás abierto a usar C++, la biblioteca Boost.Asio también proporciona soporte para la comunicación serie. Es parte de la biblioteca Boost, que es muy popular en el desarrollo en C++. Ofrece un enfoque asincrónico y puede ser muy útil si necesitas manejar múltiples conexiones o realizar operaciones no bloqueantes.
Cada una de estas bibliotecas tiene sus propias ventajas y desventajas, así que terecomendaría que revises la documentación de cada una para ver cuál se adapta mejor a tus necesidades específicas. Si buscas simplicidad y portabilidad, `libserialport` o `wjdwood/serial` podrían ser las mejores opciones.
Espero que esta información te sea útil. ¡Buena suerte con tu proyecto!