测试例子
#include <sys/file.h>
#include <stdio.h>
int main(void)
{
FILE *fp = NULL;
int i = 10;
if ((fp = fopen("./file_lock.test", "w+b")) == NULL) {
printf("file open error!\n");
}
printf("wait other app to complete~~~\n");
if (flock(fp->_fileno, LOCK_EX) != 0) {//文件加锁
printf("set lock ex fail\n");
}
printf("wait complete~~~\n");
while(1) {
printf("%d\n", i--);
sleep(1);
if (i == 0) {
break;
}
}
fclose(fp); //10秒后退出,关闭文件
flock(fp->_fileno, LOCK_UN); //文件解锁
return 0;
}