Bloqueo de puerto serie de Linux

Tengo un problema que estoy tratando de resolver con respecto al puerto serie en Linux. Puedo abrir, leer y cerrar el puerto sin problemas. Sin embargo, quiero asegurarme de que soy la única persona que lee / escribe desde el puerto en un momento dado.

Pensé que esto ya estaba hecho para mí después de hacer la llamada a la función open (). Sin embargo, puedo llamar a open () varias veces en el mismo puerto en mi programa. También puedo tener dos hilos que están leyendo simultáneamente desde el mismo puerto.

Intenté solucionar este problema con flock () y todavía tenía el mismo problema. ¿Es porque las llamadas de ambos sistemas provienen del mismo pid, aunque hay diferentes descriptores de archivos involucrados con cada conjunto de aperturas y lecturas? Para el registro, ambas llamadas open () devuelven un descriptor de archivo válido.

Como resultado, me pregunto si hay alguna forma de remediarlo por problema. Desde la perspectiva de mi programa, no es un gran problema si dos llamadas a open () tienen éxito en el mismo puerto ya que el programador debe ser consciente de la hilaridad que están causando. Sin embargo, solo quiero asegurarme de que cuando abro un puerto, soy el único proceso con acceso a él.

Gracias por la ayuda.

Respuestas a la pregunta(2)

Su respuesta a la pregunta