Qt4.5.0内存映射文件示例
来源:互联网 发布:1元云购源码下载 编辑:程序博客网 时间:2024/06/03 17:53
采用Qt4.5.0内存映射文件技术复制一个文件。速度要比使用IO读写快一倍以上。
bool copydataqt4::copyFileMap(){QFile objInputFile(m_strInputFile);if (!objInputFile.open(QIODevice::Unbuffered | QIODevice::ReadOnly)){return false;}QFile objOutputFile(m_strOutputFile);if (!objOutputFile.open(QIODevice::Unbuffered | QIODevice::ReadWrite | QIODevice::Truncate)){objInputFile.close();return false;}uchar * pInputData;uchar * pOutputData;m_qint64FileOffset = 0;m_qint64InputFileSize = objInputFile.size();objOutputFile.resize(m_qint64InputFileSize);int unTmpBlockSize = 0;while(m_qint64FileOffset < m_qint64InputFileSize){if (m_qint64InputFileSize-m_qint64FileOffset >= m_unBlockSize){unTmpBlockSize = m_unBlockSize;}else{unTmpBlockSize = m_qint64InputFileSize-m_qint64FileOffset;}pInputData = objInputFile.map(m_qint64FileOffset,unTmpBlockSize);if (pInputData == NULL){objInputFile.close();objOutputFile.close();return false;}pOutputData = objOutputFile.map(m_qint64FileOffset,unTmpBlockSize);if (pOutputData == NULL){objInputFile.close();objOutputFile.close();return false;}memcpy(pOutputData,pInputData,unTmpBlockSize);m_qint64FileOffset += unTmpBlockSize;objInputFile.unmap(pInputData);objOutputFile.unmap(pOutputData);}objInputFile.close();objOutputFile.close();return true;}
- Qt4.5.0内存映射文件示例
- 内存映射文件示例zz
- 内存映射文件详解及代码示例
- 内存映射:内存映射文件
- 内存映射:内存映射文件
- 映射内存(Mapped memory)示例
- 内存映射文件
- 内存映射文件 续
- 内存映射文件 尾
- 内存映射文件
- 使用内存映射文件
- 内存映射文件
- 内存映射文件
- 内存映射文件技术
- 内存映射文件
- 内存映射文件
- 内存映射文件
- 内存映射文件
- ado,odbc,ole等数据库连接技术小析
- C++中DDB与DIB位图 与 BMP文件格式
- 图示ireport中使用javabean作数据源开发基于jasperreports报表过程
- Android模拟器上网问题
- 从 Windows的 粘滞键 看国内外软件行业的社会责任感
- Qt4.5.0内存映射文件示例
- 关于Load Balance出现ViewState异常的解决方案
- 智能人机交互参考文献
- 一读一写无锁队列c++实现
- 安装时出现蓝屏,代码:stop:0X000007B
- 渗透某知名公司内部网络
- Drupal popups模块的一个bug?
- PLT Scheme改名为Racket
- 《maven权威指南》学习笔记(更新中)