BBS.ChinaUnix.net
首页
|
新闻
|
Linux
|
FreeBSD
|
AIX
|
Windows
|
博客
|
论坛
|
存储
|
网络
|
人才
|
Wiki
|
资料
|
读书
|
手册
|
下载
|
空间
|
搜索
会员:
密码:
免费注册
|
忘记密码
|
会员登录
|
搜索
|
帮助
[C]
怎么样子给文件上锁呢?[已解决]谢谢各位
‹‹
1
2
首页
»
论坛
»
C/C++
»
论坛跳转 ...
> Functional编程
> 数据仓库与数据挖掘
> 门户网站运维
> Linux论坛
> BSD
> BSD文档中心
> Solaris
> Solaris文档中心
> 互操作专区
> AIX
> AIX文档中心
> AS400
> HP-UX
> HP文档中心
> SCO UNIX
> SCO文档中心
> Tru64 UNIX
> IRIX
> Mac OS X
> C/C++
> Shell
> Java
> Java文档中心
> Php
> php文档中心
> Perl
> Python
> Python文档中心
> Web开发
> 软件工程
> 中间件技术
> GUI编程
> 软件配置管理
> VOIP开发技术
> CPU与编译器
> Ruby
> OpenAPI
> 安全技术
> 网络技术
> 网络技术文档中心
> 存储备份之家
> 存储文档中心
> 存储业界
> 服务器及硬件技术
> MySQL
> MySQL文档中心
> Sybase
> Oracle
> PostgreSQL
> DB2
> Informix
> Web服务器
> Mail服务器
> FTP服务器
> DNS服务器
> Proxy服务器
> LDAP
> VPN
> Lotus
> Samba
> 金融行业
> 电信行业
> 互联网行业
> 制造行业
> 医卫行业
> 教育行业
> 电子政务
> 信息安全
> 交通行业
> IT业界新闻与评论
> IT职业生涯
> IT培训与认证
> IT二手大厅
> IT图书与评论
> 清茶斋
> 投资理财
> 运动地带
> 北京2008奥运专版
> 快乐数码摄影
> 《奥运之夏》摄影赛专区
> 影音文字
> English Forum
> 游戏玩家
> 旅游天下
> IT爱车族
> 文学小说
> CU活动专区
> 主题推广专区
> 站务交流
> 博客站务交流区
> 下载频道交流区
> 空间圈子交流区
最近访问的论坛 ...
时代冠军主机588元/两年
|
送Windows新书+500分+2G U盘
| 新版块:
OpenAPI
、
数据仓库与数据挖掘
、
门户网站运维
、
Functional编程
|
"奥运之夏"获奖摄影作品展示
[
打印
] [
订阅
] [
收藏
] [
本帖文本页
] [
推荐此主题给朋友,立即获积分
]
本主题由 net_robber 于 2008-6-18 11:23 限时高亮
Godbach
(To be 千里马!)
精灵使
UID:534931
注册:2007-3-9
最后登录: 2008-10-08
帖子:
4258
精华:
4
可用积分:7752 (富足长乐)
信誉积分:105
专家积分:69 (本版:1)
空间积分:2
推广积分:0
状态:
...在线...
[
个人空间
] [
短信
] [
博客
]
[
推广获积分
]
11楼
发表于 2008-6-18 10:38
你上面的那个程序是什么意思。
如果你需要测试的话。可能应该这样做。在一个程序里,锁a,然后读写b,但不释放这个锁。
在另外一个程序里,同样对a进行flock,然后再读写b。按理说,你是一直得不到a的锁。也就一直不能读写b.程序阻塞。
您对本贴的看法:
鲜花[0]
臭蛋[0]
__________________________________
明犯我强汉天威者,穷搜天下,万里追杀,覆其巢,断其苗裔,戮其身,追其魂,屠其魄,虽远必诛!
----------------------------------
一尺之槌,日取其半,万世不竭!
积分兑换专区
|
IT节能和TPC-E活动获奖名单
|
致电800-858-2903,了解DELL如何为你量身订制笔记本
|
送2G U盘
|
站长如何获得资金?
lipingtababa
精灵
UID:585831
注册:2007-7-11
最后登录: 2008-10-06
帖子:
231
精华:0
可用积分:237 (白手起家)
信誉积分:105
专家积分:0 (本版:0)
空间积分:0
推广积分:0
状态:
...离线...
[
个人空间
] [
短信
] [
博客
]
[
推广获积分
]
12楼
发表于 2008-6-18 10:40
谢谢您哈~我按照刚才的意思写的,对aaa.txt加锁,然后对bbb.txt进行操作还是可以写进字符?
--------我晕,你完全无视我的回帖啊.
to Godbach
他还是没明白flock只是一个advisory lock.
顺便说一下flock一个很大的陷阱.
1. flock是实现在open file table entry上的,
2. flock可以递归调用
两个特色混起来导致一个巨大的陷阱:
This means that duplicate file descriptors (created by, for example, fork(2) or dup(2)) refer to the same lock, and this lock may be modified or released using any of these descriptors.
也就是说你在打开一个文件,获得文件描述符fd, 然后fork,分别在父进程和子进程对该fd加锁的话,两个加锁都会成功!!!而这应该是给文件加锁最常见的场景.
代码随后附上.
[
本帖最后由 lipingtababa 于 2008-6-18 10:44 编辑
]
您对本贴的看法:
鲜花[1]
臭蛋[0]
积分兑换专区
|
IT节能和TPC-E活动获奖名单
|
致电800-858-2903,了解DELL如何为你量身订制笔记本
|
送2G U盘
|
站长如何获得资金?
Godbach
(To be 千里马!)
精灵使
UID:534931
注册:2007-3-9
最后登录: 2008-10-08
帖子:
4258
精华:
4
可用积分:7752 (富足长乐)
信誉积分:105
专家积分:69 (本版:1)
空间积分:2
推广积分:0
状态:
...在线...
[
个人空间
] [
短信
] [
博客
]
[
推广获积分
]
13楼
发表于 2008-6-18 10:42
[
本帖最后由 Godbach 于 2008-6-18 10:44 编辑
]
您对本贴的看法:
鲜花[0]
臭蛋[0]
__________________________________
明犯我强汉天威者,穷搜天下,万里追杀,覆其巢,断其苗裔,戮其身,追其魂,屠其魄,虽远必诛!
----------------------------------
一尺之槌,日取其半,万世不竭!
积分兑换专区
|
IT节能和TPC-E活动获奖名单
|
致电800-858-2903,了解DELL如何为你量身订制笔记本
|
送2G U盘
|
站长如何获得资金?
net_robber
(迷茫的羔羊)
版主-精灵使
堕落的鬼魂
UID:159572
注册:2004-5-20
最后登录: 2008-10-08
帖子:
3487
精华:
4
可用积分:5223 (富足长乐)
信誉积分:99
专家积分:10 (本版:5)
空间积分:0
推广积分:7
状态:
...在线...
[
个人空间
] [
短信
] [
博客
]
[
推广获积分
]
14楼
发表于 2008-6-18 11:13
QUOTE:
原帖由
lipingtababa
于 2008-6-18 10:40 发表
谢谢您哈~我按照刚才的意思写的,对aaa.txt加锁,然后对bbb.txt进行操作还是可以写进字符?
--------我晕,你完全无视我的回帖啊.
to Godbach
他还是没明白flock只是一个advisory lock.
顺便说一下flock ...
你说的不错,我刚测试了一下,确实如你说
我的测试代码如下
#
include
<
stdio
.
h
>
#
include
<
sys
/
file
.
h
>
#
include
<
unistd
.
h
>
int
main
(
void
)
{
printf
(
"------------- Test 01 ------------------\n"
)
;
int
fd
=
open
(
"./lock"
,
O_CREAT
|
O_RDWR
,
0777
)
;
pid_t
pid
=
0
;
pid
=
fork
(
)
;
if
(
pid
<
0
)
{
printf
(
"[ERROR] fork()\n"
)
;
}
else
if
(
pid
=
=
0
)
{
printf
(
"[Child] ...\n"
)
;
{
flock
(
fd
,
LOCK_EX
)
;
printf
(
"[Child] Hold The Lock\n"
)
;
sleep
(
5
)
;
}
close
(
fd
)
;
return
0
;
}
else
{
printf
(
"[Father] Child PID = %d\n"
,
pid
)
;
{
flock
(
fd
,
LOCK_EX
)
;
printf
(
"[Father] Hold The Lock\n"
)
;
sleep
(
10
)
;
}
close
(
fd
)
;
}
printf
(
"\n\n------------- Test 02 ------------------\n"
)
;
pid
=
0
;
pid
=
fork
(
)
;
fd
=
0
;
fd
=
open
(
"./lock"
,
O_CREAT
|
O_RDWR
,
0777
)
;
if
(
pid
<
0
)
{
printf
(
"[ERROR] fork()\n"
)
;
}
else
if
(
pid
=
=
0
)
{
printf
(
"[Child] ...\n"
)
;
{
flock
(
fd
,
LOCK_EX
)
;
printf
(
"[Child] Hold The Lock\n"
)
;
sleep
(
10
)
;
}
close
(
fd
)
;
return
0
;
}
else
{
printf
(
"[Father] Child PID = %d\n"
,
pid
)
;
{
flock
(
fd
,
LOCK_EX
)
;
printf
(
"[Father] Hold The Lock\n"
)
;
sleep
(
10
)
;
}
close
(
fd
)
;
}
}
您对本贴的看法:
鲜花[0]
臭蛋[0]
__________________________________
新领域全方位传媒。
打破以往传统传媒单一方式让虚拟与现实完美结合。
引领新一代 《立体网络传媒文化》 。
异度圣洁诚挚的邀请您参加到我们的《彗星系统》中,与我们一起拥抱明天!
有兴趣的请联系我
ZhangQuan@TimeCtrl.net
积分兑换专区
|
IT节能和TPC-E活动获奖名单
|
致电800-858-2903,了解DELL如何为你量身订制笔记本
|
送2G U盘
|
站长如何获得资金?
5毛党党员
大天使
UID:677490
注册:2008-3-17
最后登录: 2008-10-08
帖子:
2360
精华:0
可用积分:1537 (家境小康)
信誉积分:10
专家积分:47 (本版:32)
空间积分:0
推广积分:0
状态:
...离线...
[
个人空间
] [
短信
] [
博客
]
[
推广获积分
]
15楼
发表于 2008-6-18 11:18
学习了,看来以后用flock要小心了
您对本贴的看法:
鲜花[0]
臭蛋[0]
积分兑换专区
|
IT节能和TPC-E活动获奖名单
|
致电800-858-2903,了解DELL如何为你量身订制笔记本
|
送2G U盘
|
站长如何获得资金?
Godbach
(To be 千里马!)
精灵使
UID:534931
注册:2007-3-9
最后登录: 2008-10-08
帖子:
4258
精华:
4
可用积分:7752 (富足长乐)
信誉积分:105
专家积分:69 (本版:1)
空间积分:2
推广积分:0
状态:
...在线...
[
个人空间
] [
短信
] [
博客
]
[
推广获积分
]
16楼
发表于 2008-6-18 11:24
学习了。偶使用的时候,是几个不同的程序需要对同一个文件进行读写,所以flock还是不错的。
看来在有父子关系的进程里面,flock使用还是要慎重啊。
您对本贴的看法:
鲜花[0]
臭蛋[0]
__________________________________
明犯我强汉天威者,穷搜天下,万里追杀,覆其巢,断其苗裔,戮其身,追其魂,屠其魄,虽远必诛!
----------------------------------
一尺之槌,日取其半,万世不竭!
积分兑换专区
|
IT节能和TPC-E活动获奖名单
|
致电800-858-2903,了解DELL如何为你量身订制笔记本
|
送2G U盘
|
站长如何获得资金?
lipingtababa
精灵
UID:585831
注册:2007-7-11
最后登录: 2008-10-06
帖子:
231
精华:0
可用积分:237 (白手起家)
信誉积分:105
专家积分:0 (本版:0)
空间积分:0
推广积分:0
状态:
...离线...
[
个人空间
] [
短信
] [
博客
]
[
推广获积分
]
17楼
发表于 2008-6-18 11:30
既然net_robber把代码贴出来了,我就不再贴了.
您对本贴的看法:
鲜花[0]
臭蛋[0]
积分兑换专区
|
IT节能和TPC-E活动获奖名单
|
致电800-858-2903,了解DELL如何为你量身订制笔记本
|
送2G U盘
|
站长如何获得资金?
Godbach
(To be 千里马!)
精灵使
UID:534931
注册:2007-3-9
最后登录: 2008-10-08
帖子:
4258
精华:
4
可用积分:7752 (富足长乐)
信誉积分:105
专家积分:69 (本版:1)
空间积分:2
推广积分:0
状态:
...在线...
[
个人空间
] [
短信
] [
博客
]
[
推广获积分
]
18楼
发表于 2008-6-18 11:33
net_robber版主很热心啊。早日转正!!
您对本贴的看法:
鲜花[0]
臭蛋[0]
__________________________________
明犯我强汉天威者,穷搜天下,万里追杀,覆其巢,断其苗裔,戮其身,追其魂,屠其魄,虽远必诛!
----------------------------------
一尺之槌,日取其半,万世不竭!
积分兑换专区
|
IT节能和TPC-E活动获奖名单
|
致电800-858-2903,了解DELL如何为你量身订制笔记本
|
送2G U盘
|
站长如何获得资金?
40943460
侠客
UID:588357
注册:2007-7-17
最后登录: 2008-09-09
帖子:
47
精华:0
可用积分:35 (白手起家)
信誉积分:105
专家积分:0 (本版:0)
空间积分:0
推广积分:0
状态:
...离线...
[
个人空间
] [
短信
] [
博客
]
[
推广获积分
]
19楼
发表于 2008-6-18 11:41
谢谢各位..大概懂得一点了,按照Godbach (To be 千里马!) 的方法写了个很简单的例子.不过操作系统没咋学过. net_robber 版主写的说的父子进程的 跟 Godbach (To be 千里马!) 说的
"偶使用的时候,是几个不同的程序需要对同一个文件进行读写,所以flock还是不错的。
看来在有父子关系的进程里面,flock使用还是要慎重啊。" 还不是很明白....正在研究版主的例子..
您对本贴的看法:
鲜花[0]
臭蛋[0]
积分兑换专区
|
IT节能和TPC-E活动获奖名单
|
致电800-858-2903,了解DELL如何为你量身订制笔记本
|
送2G U盘
|
站长如何获得资金?
yecheng_110
(我是噩梦)
大天使
UID:434651
注册:2006-6-24
最后登录: 2008-10-08
帖子:
1937
精华:
1
可用积分:1860 (家境小康)
信誉积分:100
专家积分:86 (本版:5)
空间积分:3
推广积分:0
状态:...保密...
[
个人空间
] [
短信
] [
博客
]
[
推广获积分
]
20楼
发表于 2008-7-1 15:13
QUOTE:
两个特色混起来导致一个巨大的陷阱:
This means that duplicate file descriptors (created by, for example, fork(2) or dup(2)) refer to the same lock, and this lock may be modified or released using any of these descriptors.
lockf就不会了
您对本贴的看法:
鲜花[0]
臭蛋[0]
积分兑换专区
|
IT节能和TPC-E活动获奖名单
|
致电800-858-2903,了解DELL如何为你量身订制笔记本
|
送2G U盘
|
站长如何获得资金?
首页
»
论坛
»
C/C++
»
‹‹
1
2
论坛跳转 ...
> Functional编程
> 数据仓库与数据挖掘
> 门户网站运维
> Linux论坛
> BSD
> BSD文档中心
> Solaris
> Solaris文档中心
> 互操作专区
> AIX
> AIX文档中心
> AS400
> HP-UX
> HP文档中心
> SCO UNIX
> SCO文档中心
> Tru64 UNIX
> IRIX
> Mac OS X
> C/C++
> Shell
> Java
> Java文档中心
> Php
> php文档中心
> Perl
> Python
> Python文档中心
> Web开发
> 软件工程
> 中间件技术
> GUI编程
> 软件配置管理
> VOIP开发技术
> CPU与编译器
> Ruby
> OpenAPI
> 安全技术
> 网络技术
> 网络技术文档中心
> 存储备份之家
> 存储文档中心
> 存储业界
> 服务器及硬件技术
> MySQL
> MySQL文档中心
> Sybase
> Oracle
> PostgreSQL
> DB2
> Informix
> Web服务器
> Mail服务器
> FTP服务器
> DNS服务器
> Proxy服务器
> LDAP
> VPN
> Lotus
> Samba
> 金融行业
> 电信行业
> 互联网行业
> 制造行业
> 医卫行业
> 教育行业
> 电子政务
> 信息安全
> 交通行业
> IT业界新闻与评论
> IT职业生涯
> IT培训与认证
> IT二手大厅
> IT图书与评论
> 清茶斋
> 投资理财
> 运动地带
> 北京2008奥运专版
> 快乐数码摄影
> 《奥运之夏》摄影赛专区
> 影音文字
> English Forum
> 游戏玩家
> 旅游天下
> IT爱车族
> 文学小说
> CU活动专区
> 主题推广专区
> 站务交流
> 博客站务交流区
> 下载频道交流区
> 空间圈子交流区
控制面板首页
编辑个人资料
积分交易
公众用户组
好友列表
个人空间管理
升级个人空间
基本概况
论坛排行
主题排行
发帖排行
积分排行
管理团队
管理统计
Copyright © 2001-2008 ChinaUnix.net All Rights Reserved 联系我们:
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处
京ICP证041476号
清除 Cookies
-
ChinaUnix
-
Archiver
-
WAP
-
TOP
Processed in 0.107858 second(s), 5 queries , Gzip enabled
控制面板首页
编辑个人资料
积分交易
公众用户组
好友列表
个人空间管理
升级个人空间
基本概况
论坛排行
主题排行
发帖排行
积分排行
管理团队
管理统计