首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

关于Linux下,函数lockf()调用失败,该怎么解决

2012-03-01 
关于Linux下,函数lockf()调用失败写了一个测试程序,给文件aaa加锁,但是失败了,程序和结果如下:/**********

关于Linux下,函数lockf()调用失败
写了一个测试程序,给文件aaa加锁,但是失败了,程序和结果如下:
/****************************************************************/
#include   <fcntl.h>
#include   <unistd.h>
#include   <errno.h>
#include   <stdio.h>
#include   <stdlib.h>

int   main(int   argc,   char   **argv)   {
                int   fildes;
                int   status;
                int   i   =   0;
                fildes   =   open( "/home/webotx/catalog-dingcj/test/aaa ",   O_RDWR);
                if   (fildes   ==   -1)   {
                                fprintf(stderr,   "open   err=%d\n ",   errno);
                                return   -1;
                }
                status   =   lockf(fildes,   F_TLOCK,   (off_t)10000);
                if   (status   !=   0)   {
                                fprintf(stderr,   "err=%d\n ",   errno);
                }   else   {
                                fprintf(stderr,   "lock   ok\n ");
                }
}
/****************************************************************/
输出结果:err=37

请问:Linux下系统锁的数量有上限吗,是不是可以配置?


[解决办法]
/proc/locks可以看到有关文件锁的一些信息(如锁类型,对应的pid,文件所在的设备主次设备号,文件inode,锁范围等)。解锁的话没听说有什么方法,理论上温和的方法应该不可行,除非kill掉对应的进程。

系统锁不记得有上限,如果有除非是memory不够...

热点排行