当前位置: 技术问答>linux和unix
关于Linux下,函数lockf()调用失败
来源: 互联网 发布时间:2016-01-09
本文导语: 写了一个测试程序,给文件aaa加锁,但是失败了,程序和结果如下: /****************************************************************/ #include #include #include #include #include int main(int argc, char **argv) { int fildes; ...
写了一个测试程序,给文件aaa加锁,但是失败了,程序和结果如下:
/****************************************************************/
#include
#include
#include
#include
#include
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=%dn", errno);
return -1;
}
status = lockf(fildes, F_TLOCK, (off_t)10000);
if (status != 0) {
fprintf(stderr, "err=%dn", errno);
} else {
fprintf(stderr, "lock okn");
}
}
/****************************************************************/
输出结果:err=37
请问:Linux下系统锁的数量有上限吗,是不是可以配置?
/****************************************************************/
#include
#include
#include
#include
#include
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=%dn", errno);
return -1;
}
status = lockf(fildes, F_TLOCK, (off_t)10000);
if (status != 0) {
fprintf(stderr, "err=%dn", errno);
} else {
fprintf(stderr, "lock okn");
}
}
/****************************************************************/
输出结果:err=37
请问:Linux下系统锁的数量有上限吗,是不是可以配置?
|
/proc/locks可以看到有关文件锁的一些信息(如锁类型,对应的pid,文件所在的设备主次设备号,文件inode,锁范围等)。解锁的话没听说有什么方法,理论上温和的方法应该不可行,除非kill掉对应的进程。
系统锁不记得有上限,如果有除非是memory不够...
系统锁不记得有上限,如果有除非是memory不够...