Verrouillage du fichier d’octets fcntl dans Linux

J’ai verrouillé des octets particuliers dans un fichier en utilisant fcntl avec certaines valeurs de fl.1_start et f1.1_len. pendant que le programme est en cours d’exécution, j’ai essayé d’écrire dans ce fichier à partir d’un autre programme sur ces octets. lors de l’exécution simultanée des deux programmes, le deuxième programme écrit dans ces octets verrouillés malgré le locking du premier programme. quelqu’un peut-il expliquer pourquoi il se comporte comme ça?

fcntl est une sorte d’implémentation volontaire dans les systèmes de type Unix. Les deux processus doivent l’utiliser pour fonctionner correctement.

Les opérations comme read() et write() ignorent simplement les verrous. L’autre processus est bloqué uniquement lorsque vous appelez explicitement fcntl() sur la zone déjà verrouillée par un autre processus