fcntl

weiyijiji 2008-10-18 09:11:14
为是么fcntl(fd,F_GETLK,&lock)每次都返回-1?
#include <stdio.h>
#include <fcntl.h>
#include <errno.h>
int main(){
int fd,tmp;
struct flock f;
f.l_type=F_WRLCK;
f.l_start=0;
f.l_whence=SEEK_SET;;
f.l_len=0;
fd=open("a.txt",O_WRONLY);
tmp=fcntl(fd,F_GETLK,&f);
printf("%d\n",tmp);
if(f.l_type==F_UNLCK)
{
printf("unlock!\n");
}
return 0;
}
...全文
78 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
weiyijiji 2008-10-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 genghb 的回复:]
因为你打开文件失败了,如果该文件不存在你需要加O_CREAT 创建文件
[/Quote]
..有这个文件,打开是成功的..
genghb 2008-10-18
  • 打赏
  • 举报
回复
因为你打开文件失败了,如果该文件不存在你需要加O_CREAT 创建文件
genghb 2008-10-18
  • 打赏
  • 举报
回复
你open后打印一下fd的值看看,我测试过这段程序是可以的(文件存在的话)
once_and_again 2008-10-18
  • 打赏
  • 举报
回复
ioctl ()
似乎是linux下最繁杂的函数了

23,121

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧