社区
C语言
帖子详情
关于ofstream::write()的奇怪问题
lifeforu
2005-05-24 11:07:46
m_ofstream.open(name,ios::out , 0) ;
m_ofstream.write(p,nLen);
问题在于如果在write这句设置断点 或者说是单步执行这些操作的时候会提示invalid handle.
但是如果没有断点或是在非调试模式下面则文件写入正常
在网上找了一阵子 到是没发现这样的怪现像 有谁碰到过?指点一下
...全文
622
16
打赏
收藏
关于ofstream::write()的奇怪问题
m_ofstream.open(name,ios::out , 0) ; m_ofstream.write(p,nLen); 问题在于如果在write这句设置断点 或者说是单步执行这些操作的时候会提示invalid handle. 但是如果没有断点或是在非调试模式下面则文件写入正常 在网上找了一阵子 到是没发现这样的怪现像 有谁碰到过?指点一下
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lifeforu
2005-05-24
打赏
举报
回复
如果加判断
if(fos)
fos.write(..);//第一次执行即出错了
我觉得太奇怪了 如果说是代码有问题吧 为什么在非调试下面又是正常的咧?
在收到传输文件请求的时候按文件名open,然后收到之后write,收到结束串时close
再一次检查了代码 好像没啥问题啊
代码比较长 不方便贴出来
useresu
2005-05-24
打赏
举报
回复
你设成追加模式呢?
fos.open("txt.txt", ios::out | ios::app);
tuxw
2005-05-24
打赏
举报
回复
对了,这个帖应该移到 C++ 去
useresu
2005-05-24
打赏
举报
回复
用if(!m_ofstream)
看文件是否打开成功
tuxw
2005-05-24
打赏
举报
回复
我试的怎么没问题(XP 、 VC6+SP6)
#include <iostream.h>
#include <fstream.h>
void main()
{
ofstream fos;
fos.open("txt.txt", ios::out, 0);
//fos.open("txt.txt", ios::out);
for(int i=0; i<5; ++i)
{
fos.write("abc", 3);
}
fos.close();
ifstream fis;
fis.open("txt.txt", ios::in);
cout << fis.rdbuf() << endl;
fis.close();
}
useresu
2005-05-24
打赏
举报
回复
帖错了,不好意思
lifeforu
2005-05-24
打赏
举报
回复
to tuxw(醉书生) : 我曾去掉试过
一般情况下是第二次write的时候
功能是进行文件传输 打开文件后收到就写一下 我跟了好几次都是第二次写的时候出错了
first-chance exception in a.exe (ntdll.dll) :0xc00000008 :invalid handle
tuxw
2005-05-24
打赏
举报
回复
晕了,是我理解错了,还是楼上的发错位置了?
tuxw
2005-05-24
打赏
举报
回复
m_ofstream.open(name,ios::out , 0) ;
将第三个参数 0 去掉看看
useresu
2005-05-24
打赏
举报
回复
list<int>::iterator temp;
for( iter = ilist.begin(); iter != ilist.end(); iter++ )
{
temp = iter++;
if( *iter % 2 != 0 )
{
ilist.erase( temp );
}
//cout<<" " <<*iter;
}
类似这样,但是这样会不去判第一个元素,你可以把第一个元素单独考虑
yjh1982
2005-05-24
打赏
举报
回复
我哪知道,反正我也碰到过就是了.
尤其是调试多线程和dll的时候.
lifeforu
2005-05-24
打赏
举报
回复
to yjh1982(血精灵) why
yjh1982
2005-05-24
打赏
举报
回复
vc6的话,调试程序是会出问题的
lifeforu
2005-05-24
打赏
举报
回复
程序是多线程 不过我在调试的时候都只开了一个客户端
这会儿多数调试的时候在if(fos)处都非法了
mostideal
2005-05-24
打赏
举报
回复
应该是中断不允许在那之中吧。。我没遇到过。。
lifeforu
2005-05-24
打赏
举报
回复
真是奇怪透顶了...有没有谁碰到过这种情况了
ofstream
写大文件出错
我的程序在运行过程中会同时向磁盘写两个体积很大的二进制文件。文件A大致是240G,文件B大致是480G。两个文件都是用
ofstream
对象来维护的。写操作是通过
ofstream
的
write
成员函数实现的。 现在的
问题
是:每次写文件写到64%左右就会出错,
write
函数的返回值显示写操作没有成功。第一回是在文件A出错,第二回则是在文件B出错。 刚好这几天单位这边的电路在整改。程...
C++文件操作全解析:从基础读写到性能优化实战
文件操作是程序与外部世界交互的核心机制,它通过流(Stream)的概念,将数据在内存与持久化存储之间进行传输。其原理基于操作系统提供的文件系统接口,通过缓冲区管理、错误状态位等机制,实现高效可靠的数据读写。在C++中,文件操作的技术价值在于提供了类型安全、资源自动管理(RAII)的抽象,是数据持久化、配置管理、日志记录等功能的基础。无论是开发桌面应用、游戏、服务器后端还是数据处理系统,文件读写都是不可或缺的环节。本文聚焦于C++标准库中的`
`,深入探讨`ifstream`、`ofstrea
半天时间找到原因却仍未解决的Bug
半天时间找到原因却仍未解决的Bug在一个巨大的数据文件作为输入时, 出现了一个assert断言错误.花了半天时间跟踪代码, 费尽心思找到了错误的来源, 可是一时间也没有解决的办法, 只能打个临时补丁.类里面有个成员变量 std::
ofstream
m_ofs; 在某个方法里面的断言警告: assert(!m_ofs); 流操作之后都有一个状态判断: if (
[c++11]多线程编程(三)——竞争条件与互斥锁
[c++11]多线程编程(三)——竞争条件与互斥锁 转自:https://www.jianshu.com/p/4a2578dd9b5d 竞争条件 并发代码中最常见的错误之一就是竞争条件(race condition)。而其中最常见的就是数据竞争(data race),从整体上来看,所有线程之间共享数据的
问题
,都是修改数据导致的,如果所有的共享数据都是只读的,就不会发生
问题
。但是这是不可能的,...
VS2010 C++项目JSON处理实战:JsonCpp选型、集成与避坑指南
JSON作为一种轻量级的数据交换格式,凭借其易于阅读和编写的文本结构,已成为Web API、配置文件等领域的事实标准。其核心原理是基于键值对的集合与数组嵌套,实现结构化数据的序列化与反序列化。在C++工程实践中,高效解析与生成JSON是连接不同系统模块、处理外部数据的关键技术。对于仍在使用Visual Studio 2010等较老编译环境的项目,由于其对现代C++标准支持有限,直接引入主流JSON库常会遇到兼容性
问题
。本文聚焦于这一特定场景,深入探讨如何在VS2010环境下,选用兼容性优秀的JsonCpp库
C语言
70,040
社区成员
243,237
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章