免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12345下一页
最近访问板块 发新帖
查看: 7751 | 回复: 40
打印 上一主题 下一主题

多个线程同时写一个文件的问题!!!!! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-08-24 15:41 |只看该作者 |倒序浏览
多个线程可能同时打开、写入同一个文件
打开、写入数据后立即关闭

FILE *fd = fopen(fname,"ab";
fseek(fd , 0 , SEEK_END);
fwrite((char*)&rec , sizeof(RECORD) , 1 ,fd);
fclose(fd);   

程序会可能存在安全隐患吗?

论坛徽章:
1
15-16赛季CBA联赛之四川
日期:2016-02-15 17:12:32
2 [报告]
发表于 2004-08-24 17:56 |只看该作者

多个线程同时写一个文件的问题!!!!!

是啊 用fcntl() 控制一下就好了

论坛徽章:
0
3 [报告]
发表于 2004-08-24 17:58 |只看该作者

多个线程同时写一个文件的问题!!!!!

你要处理同步关系啊

论坛徽章:
0
4 [报告]
发表于 2004-08-24 19:58 |只看该作者

多个线程同时写一个文件的问题!!!!!

加一个信号量

论坛徽章:
0
5 [报告]
发表于 2004-08-25 15:31 |只看该作者

多个线程同时写一个文件的问题!!!!!

[quote]原帖由 "wujiajia"]是啊 用fcntl() 控制一下就好了[/quote 发表:


用fcntl()怎么控制?谢谢

论坛徽章:
0
6 [报告]
发表于 2004-08-25 21:12 |只看该作者

多个线程同时写一个文件的问题!!!!!

int fcntl (int filedes , int cmd ,....)

论坛徽章:
0
7 [报告]
发表于 2004-08-25 22:59 |只看该作者

多个线程同时写一个文件的问题!!!!!

flock一下好了 呵呵

论坛徽章:
0
8 [报告]
发表于 2004-08-26 09:45 |只看该作者

多个线程同时写一个文件的问题!!!!!

[quote]原帖由 "xeroo"]flock一下好了 呵呵[/quote 发表:


flock的话,写文件就有些相当于单线程操作了
因为写入时是一条语句全部写入,所以写入的数据倒不会乱
只是考虑多个线程同时打开一个文件,会不会导致系统出问题

论坛徽章:
0
9 [报告]
发表于 2004-08-26 09:46 |只看该作者

多个线程同时写一个文件的问题!!!!!

[quote]原帖由 "bmsdr"]int fcntl (int filedes , int cmd ,....)[/quote 发表:


这函数对写入文件可以做什么样的控制?

论坛徽章:
0
10 [报告]
发表于 2004-08-26 09:54 |只看该作者

多个线程同时写一个文件的问题!!!!!

每个对该文件操作的都有一个文件拷贝,就是这样了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP