文件读取加锁:
#include <stdio.h>  
 #include <stdlib.h>  
 #include <fcntl.h>  
 #include <unistd.h>  
 #include <sys/stat.h>  
 #include <sys/file.h>  
   
 #define LOCK_FILE "/root/priv/cjson/test.lock"
 #define DATA_FILE "json.txt"  
   
 int main() {  
     int fd_lock, fd_data;  
     struct flock lock;  
   
     // 创建文件锁  
     fd_lock = open(LOCK_FILE, O_WRONLY | O_CREAT, 0644);  
     if (fd_lock == -1) {  
         perror("open lock file");  
         exit(EXIT_FAILURE);  
     }  
   
     // 设置独占锁  
     lock.l_type = F_WRLCK;  
     lock.l_start = 0;  
     lock.l_whence = SEEK_SET;  
     lock.l_len = 0; // 锁定整个文件  
     if (fcntl(fd_lock, F_SETLKW, &lock) == -1) {  
         perror("fcntl lock");  
         close(fd