本文主要是介绍Linux 多进程情况下文件读写加锁,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文件读取加锁:
#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
这篇关于Linux 多进程情况下文件读写加锁的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!