为什么检测文件锁会出错?

发布于 2022-07-19 11:18:32 字数 645 浏览 8 评论 2

fd0=open("/var/run/svtest.pid",O_RDWR|O_CREAT,S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH);
        if(fd0<0)
        {
                printf("can't open open file "/var/run/svtest.pid"n");
                exit(1);
        }
        fcntl(fd0,F_GETLK,&lock);
        printf("errno:%sn",strerror(errno));
代码如上,打算测试一下文件锁功能,但编译后运行总提示errno:Invalid argument.而且fcntl的返回值也是-1.到底哪个参数是非法的呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

情栀口红 2022-07-22 12:48:29

应该是没有问题的,不知道你在调用fcntl之前对lock的设置是什么样的,感觉是参数设置有问题或者没有设置,试试看下面的例子:
lock.l_type = F_WRLOCK;
lock.l_start = 0;
lock.l_whence = SEEK_SET;
lock.l_len = 0;
fd0=open("/var/run/svtest.pid",O_RDWR|O_CREAT,S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH);
if(fd0<0)
{
       printf("can't open open file "/var/run/svtest.pid"n");
       exit(1);
}
fcntl(fd0,F_GETLK,&lock);
printf("errno:%sn",strerror(errno));

[ 本帖最后由 xingdongcat 于 2006-6-12 17:52 编辑 ]

二智少女猫性小仙女 2022-07-20 23:45:33

各位老大的文件锁都是怎么来做的呢?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文