社区
C++ 语言
帖子详情
两个进程访问同一个文件问题
xlfd1614
2012-11-21 01:12:00
我现在有一个切割程序对视频文件进行切割操作,运行时会占用很大内存,程序结束后操作系统回收内存;
但是当被切割的文件有另一个程序正在使用它,我的切割程序关闭后,申请的内存操作系统不会回收,只有等该文件没有其他程序操作时,内存才被回收。
所以小弟想问下原因和有什么方法能使申请的内存立即回收。
...全文
171
7
打赏
收藏
两个进程访问同一个文件问题
我现在有一个切割程序对视频文件进行切割操作,运行时会占用很大内存,程序结束后操作系统回收内存; 但是当被切割的文件有另一个程序正在使用它,我的切割程序关闭后,申请的内存操作系统不会回收,只有等该文件没有其他程序操作时,内存才被回收。 所以小弟想问下原因和有什么方法能使申请的内存立即回收。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xjpzy
2012-11-22
打赏
举报
回复
进程退出,系统会清理进程的内存,程序退出后你看程序的相关进程是不是还存在,如果存在就直接结束进程
buyong
2012-11-22
打赏
举报
回复
引用 4 楼 xlfd1614 的回复:
现在问题就是切割程序申请的内存,在程序退出时没被释放。
你没有源码,你怎么肯定这是切割程序申请的内存
大尾巴猫
2012-11-22
打赏
举报
回复
不明白楼主的意思。 把文件读到申请的内存中,这内存应该是你自己new的吧,怎么就不能delete了?
「已注销」
2012-11-21
打赏
举报
回复
现在问题就是切割程序申请的内存,在程序退出时没被释放。
prajna
2012-11-21
打赏
举报
回复
切割程序关闭,那你的切割程序申请的内存应该回收了, 别人的程序打开了这个文件,那是别人申请的内存,你怎么管的着。 你想hack...还是我没理解你的问题。
「已注销」
2012-11-21
打赏
举报
回复
这我也知道啊,问题是程序是别人写的,我没源码啊
pengyw
2012-11-21
打赏
举报
回复
delete if new or free if malloc
两个
进程
同时
访问
同一个
文件
对于多个
进程
打开同一
文件
的情况,每个
进程
都有它自己的
文件
表项(file对象),其中有它自己的
文件
位移量,所以对于多个
进程
读同一
文件
都能正确工作。但是,当多个
进程
写同一
文件
时,则可能产生预期不到的结果。(可以使用pread,pwrite)。 总结:
两个
独立
进程
打开同一
文件
,对应不同的file对象,每个
进程
调用close只影响本
进程
的“打开
文件
计数”(file对象的引用计数)。 可以先打开着...
多
进程
访问
同一
文件
问题
多
进程
访问
同一
文件
问题
2009年4月7日
问题
:在多
进程
的程序中,每个
进程
都要
访问
一个
文件
读或写,这时会造成
文件
被其中一个
进程
占用,其它
进程
禁止
访问
它? 分析:多
进程
讯问
同一个
文件
,容易造成共享
文件
安全
问题
,系统需要使用同步机制来确保一次只有一个线程使用该资源,故会抛出此类故障。 解决:可以采用锁系统资源方法来解决,方法介绍如下: 锁系统 构成 目的 跨...
linux下
两个
进程
可以同时打开
同一个
文件
吗?返回的
文件
描述符一样吗?
Linux下
两个
进程
可以同时打开
同一个
文件
吗?返回的
文件
描述符一样吗? 一:结论 1.
两个
进程
中分别产生生成
两个
独立的fd 2.
两个
进程
可以任意对
文件
进行读写操作,操作系统并不保证写的原子性 3.
进程
可以通过系统调用对
文件
加锁,从而实现对
文件
内容的保护 4. 任何一个
进程
删除该
文件
时,另外一个
进程
不会立即出现读写失败 5.
两个
进程
可以分别读取
文件
的不同部分而不会相互影响 6.一...
多
进程
打开
同一个
文件
问题
分析
一、疑问 1、当多个
进程
同时打开
同一个
文件
,同时对
同一个
文件
写操作,
文件
的内容是会被覆盖只有一份还是不会覆盖会有两份内容? 二、
问题
验证 1、来点代码 2、运行结果 三、
问题
分析 ...
linux
文件
多个
进程
,Linux下多个
进程
同时操作一个
文件
的实现过程
最近有客户询问到同时有不同的用户对
同一个
文件
进行操作的情况下,系统是如何对这种
问题
进行处理。本文将对Linux下多个
进程
“同时”操作
同一个
文件
的过程进行简单的介绍。假设有三个
进程
A、B、C对
文件
a.txt
文件
行操作。A
进程
要读取
文件
的第1到100个字符,
进程
B要读取
文件
中包含aa字符的行,C要往a.txt
文件
里写入”ABC”。三个
进程
的启动顺序为A、B、C。【正文】一 假设条件1.1 三个进...
C++ 语言
64,648
社区成员
250,503
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章