今天,某同事向我反应,我写的程序有问题。出问题的大致功能是这样的,我需要在不修改原文件的情况下,备份一个新的文件出来(新文件最后一小部分内容还保存在内存)。实现方法的方法很简单,读取旧文件,然后将内容写到新文件,读取完旧文件后,再将内存部分内容写到新文件。现在问题出来了,备份的新文件比旧文件小很多,只看到一小部分内容(我猜是原先保存在内存的那部分)。在同事的电脑上测试,每次都可以重现,但我在我的电脑上测试总是无法重现。没办法,只能在单元测试工具上添加一个unit test case来跟踪测试。重现了,可以重现了,仔细跟踪,原因是这样的...
首先,为了不让其他线程修改新文件,我以mode为0的模式打开新文件(假设名叫file1,如果文件不存在,就创建一个),然后往里面写内容,直到写完内容(还有一小部分保存在内存)。当需要备份file2文件打开file1时,打开文件失败(因为mode为0,无可读不可写),导致无法备份file1文件里的内容,只保存了内存部分。那为什么同事电脑上每次都可以重现,而我的电脑上却不能重现呢。这就是超级用户的超级权限,我的电脑上使用的是root用户测试,而同事使用的是普通用户。看个例子就知道了(使用普通用户和root用户分别创建一个文件,改mode为0,再读取该文件,结果root可以读,而普通用户不可以读)
//测试普通用户
[welkin@dev91 ~]$ cd /tmp/
[welkin@dev91 /tmp]$ touch welkin
[welkin@dev91 /tmp]$ chmod 000 welkin
[welkin@dev91 /tmp]$ cat welkin
cat: welkin: 权限不够
[welkin@dev91 /tmp]$
//测试root用户
[root@dev91 tmp]# touch root
[root@dev91 tmp]# chmod 000 root
[root@dev91 tmp]# cat root
[root@dev91 tmp]#
看两个文件的mode全部是0
[welkin@dev91 /tmp]$ ll root welkin
---------- 1 root root 0 4月 22 19:03 root
---------- 1 welkin welkin 0 4月 22 19:02 welkin
[welkin@dev91 /tmp]$
这就是超级用户的超级权限,通过这个例子看出,即使改mode为0,当用root运行程序,其他线程也可以读的。如果不想让其他线程读,应该对文件加个线程锁,而不是把mode改为0。
总之,把文件的mode改为0是不安全的,可能会出现想让其他进程读的却读不了,而不想让其他线程读的,却可以读取到了
分享到:
相关推荐
汽车行业超级用户运营白皮书寄语入局新媒体行业十年,一直在亲历和见证着营销行业的变革,很多企业喊了几十年的“以客户为中心”、“以用户为中心”,从这个特殊的节骨眼上才真正开始践行。知家正在服务和接触的汽车...
这款游戏不仅代表了一个时代的结束,也见证了游戏行业的发展历程,对后来的许多游戏产生了深远的影响。 压缩包内的文件“mario.exe”正是这个游戏的执行程序,它包含了游戏的所有代码和资源,只需双击即可启动那个...
7. **软件历史**:《超级解霸》系列见证了中国个人计算机用户从VCD到DVD再到数字媒体的时代变迁,其发展史也是中国互联网和多媒体技术发展的一个缩影。 8. **怀旧与收藏价值**:对于软件爱好者和复古电脑玩家来说,...
平安银行的电商见证宝(2.0)是针对电商平台推出的一种金融服务解决方案,旨在提供安全、便捷的支付和资金管理服务。...通过深入理解和有效利用这些接口,电商平台能够提升用户体验,同时增强自身的金融服务能力。
总结来说,《超级玛利带完全游戏说明.rar》不仅是一个游戏文件,更是一个时代的见证,它将我们带回了黑莓手机盛行的时代,让我们有机会重温那些简单却充满乐趣的移动游戏。无论你是黑莓的老用户,还是对经典游戏有...
很抱歉,根据您提供的信息,"I0501_见证取样送检见证人授权书.zip" 和其内部的 "I0501_见证取样送检见证人授权书.xls" 文件似乎与IT行业专业知识并无直接关联。这个文件名更倾向于建筑工程或质量检测领域,通常涉及...
### 平安银行电商见证宝(2.0)API接口文档v1.93(全量版) #### 版本管理 此文档为平安银行电商见证宝2.0 API接口的详细指南,版本号v1.93。文档中包含了接口的各项功能说明以及使用方法,适用于对接平安银行电商...
平安银行橙e见证宝服务平台是针对电商平台和电子商务交易提供...它不仅为电商平台提供资金结算服务,确保交易的安全性和合规性,还通过技术手段提升电商平台的支付效率和用户体验,增强了平台的竞争力和品牌的公信力。
【超级解霸3500】是一款经典的多媒体播放软件,...尽管随着技术的发展,新的播放软件不断涌现,但超级解霸3500在很多人心中仍保留着不可替代的地位,见证了多媒体播放软件从简单到复杂,从单一功能到多功能的演变历程。
《建设工程质量检测见证取样员手册》是指导建筑工程质量检测的重要文档,主要涉及见证取样送样制度及其操作流程,以及常见建筑材料的质量检验标准。以下是手册中的关键知识点: 1. 见证取样送样制度: - 取样:...
"SQL Server双机热备无见证服务器" SQL Server双机热备无见证服务器是指在SQL Server数据库中,使用两个服务器实现热备的方式来保护数据,且不需要见证服务器镜像。这种方式可以实时备份数据,保护数据的安全。 在...
### 见证取样和送检制度详解 #### 一、引言 见证取样和送检制度是在建筑工程领域确保原材料质量的一项重要措施。通过这一制度,可以有效地控制建筑材料的质量,确保工程项目的安全性和可靠性。本文将详细介绍见证...
平安银行电商见证宝,资金账户,合规钱包接入文档
全量版平安银行电商见证宝系统的API接口文档v1.93:银行为每个会员提供的资金明细账户,属于下挂在资金汇总账户下的虚拟账户,记录每位会员在银行端的资金情况。一个会员只允许有一个子账户账号。
尽管随着技术的发展,如今的播放器如PotPlayer、VLC等在功能和性能上可能更为强大,但【豪杰超级解霸3500】在很多老用户心中仍占据着不可替代的地位,它是见证中国个人电脑时代发展的一个重要软件。
现场见证取样记录表,可以什么都不是,要个积分而已
《北京市建设工程见证取样和送检管理规定》是针对北京市行政区域内建设工程质量控制的重要法规,旨在规范见证取样和送检活动,确保工程结构安全。本规定依据《建设工程质量管理条例》和《建设工程质量检测管理办法》...
见证取样送检信息化监控系统介绍 一、系统概述 见证取样送检信息化监控系统是基于物联网和二维码技术的监控系统,旨在解决送检样品和进场材料不一致的问题。该系统通过智能手机终端捆绑见证相关信息,对样品取样...
检测取样送检见证人授权书 B 1.2 编号: 致: (质量监督站) (检测机构) 现委托 为 工程的 工程质量检测见证单位,负责该工程的见证取样送样工作。 具体见证人如下: 姓 名 签字笔迹 见证人证号 备注 ...
在IT行业中,"抽芯-见证记录.zip"这个文件标题和描述可能涉及到的是软件开发或系统集成过程中的质量控制环节,尤其是硬件或芯片行业的工程实践。"抽芯"一词通常指的是在半导体制造中,对产品进行抽检以验证其性能和...