Título: Bloqueos en Linux con fcntl. Publicado por: joe2011 en 29 Septiembre 2013, 23:29 pm Buenas noches de nuevo, compañeros del foro
De nuevo me dirijo a vosotros con un problema de programación en linux. Esta vez en relación al bloqueo de descriptores de archivo. Como he comentado en otra ocasión, estoy siguiendo el libro de Prentice Hall de Kurt Walt Programación en Linux y, aunque lentamente voy progresando, gracias al libro y a vuestra ayuda. En esta ocasión se trata de ejecutar el programa desde dos ventanas distintas (./lockit /tmp/foo) y ver como permite a ambos el bloqueo de lectura (del primer byte) pero cuando en una de ellas pasas al bloqueo de escritura (El programa usa getchar() para detener la ejecución) debe decirte que el pid del programa que lo ejecuta en el otro terminal aún lo tiene bloqueado para lectura y no permitírlo. Bien, esto no me ha funcionado, incluso ejecutándolo en un único terminal la salida que obtengo al ejecutar el bloqueo de escritura es: bloqueo de escritura ya establecido por -1075043608 cuando debería escribir lo que haya en el campo lock.l_pid, que según la página man de fcntl es lo que debe imprimir. En fin, si podéis ayudarme os lo agradeceria. Más abajo el código. Un saludo. Código
Título: Re: Bloqueos en Linux con fcntl. Publicado por: joe2011 en 30 Septiembre 2013, 23:33 pm ¡Vaya error más tonto! Disculpen las molestias.
He cerrado el descriptor en el módulo Desbloqueo, y ha de cerrarse en el bloque que establece el bloqueo de escritura, posteriormente a un getchar () Es decir, borrar la línea 33, e incluir en las líneas 38 y 39 Código
|