获取某应用客户端的日志文件_32_另一个程序正在使用此文件,进程无法访问
2014-12-19 16:56
495 查看
const std::string GetCloudMusicLog() { //home C:\Users\user\AppData\Local //log_path C:\Users\user\AppData\Local\**\**.log std::string log; wchar_t home[MAX_PATH]; std::wstring log_path; int ret = SHGetFolderPathW(NULL, CSIDL_LOCAL_APPDATA, NULL, SHGFP_TYPE_CURRENT, home); if (ret == S_OK) { log_path.append(home); log_path.append(L"\\**\\**\\**.log"); ret = ReadLogFile(log_path,log); } if (ret != 0) { log.append("get **.log with error code "); std::stringstream ret_to; ret_to<<ret; log.append(ret_to.str()); } return log; } int ReadLogFile( std::wstring file_path, std::string &file_buffer ) { HANDLE pfile; pfile=::CreateFile(file_path.c_str(),GENERIC_READ,FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL ,NULL); if(pfile==INVALID_HANDLE_VALUE) { CloseHandle(pfile); return ::GetLastError(); } DWORD filesize=GetFileSize(pfile,NULL); file_buffer.resize(filesize); DWORD readsize; BOOL ret =ReadFile(pfile,&file_buffer[0],filesize-1,&readsize,NULL); if (ret != TRUE) { CloseHandle(pfile); return ::GetLastError(); } CloseHandle(pfile); return 0;
错误描述:
使用fread读取文件发生错误。GetLastError返回32:另一个程序正在使用此文件,进程无法访问。
后关闭应用程序,则成功。
但后台获取客户端日志不能受另一进程影响。后改为CreateFile、ReadFile。解决问题。
ReadFile:支持同步、异步操作。能够操作通讯设备、管道、套接字、邮槽。
打开文件最好用CreateFile,而不是OpenFile。
相关文章推荐
- 异常详细信息: System.Data.SqlClient.SqlException: 无法打开物理文件 。。。 操作系统错误 32:"32(另一个程序正在使用此文件,进程无法访问。
- 转载:IIS7出现“另一个程序正在使用此文件,进程无法访问”
- IS 中 "另一个程序正在使用此文件,进程无法访问!"
- VS保存和编译问题] 总是出现另一个程序正在使用此文件,进程无法访问
- 如何解决烦人的VS.NET2003编译时“无法将程序集复制到文件,另一个程序正在使用,进程无法访问”的问题?
- iis无法启动 “另一个程序正在使用此文件,进程无法访问”
- IIS错误信息--另一个程序正在使用此文件,进程无法访问
- IIS “另一个程序正在使用此文件,进程无法访问。”错误提示的解决办法
- windows2003 IIS 服务启动失败,提示‘另一个程序正在使用此文件,进程无法访问',解决方法
- IIS 中 "另一个程序正在使用此文件,进程无法访问!"
- 安装打印机失败.错误:提示 另一个程序正在使用此文件,进程无法访问
- windows2003 IIS 服务启动失败,提示‘另一个程序正在使用此文件,进程无法访问',解决方法!
- IIS建立新网站出错-另一个程序正在使用此文件,进程无法访问
- IIS 中 "另一个程序正在使用此文件,进程无法访问!" http://www.cnblogs.com/publicbill/archive/2007/05/29/763844.html
- IIS错误信息--另一个程序正在使用此文件,进程无法访问!
- iis提示“另一个程序正在使用此文件,进程无法访问”解决办法
- iis提示“另一个程序正在使用此文件,进程无法访问”解决办法
- IIS7出现“另一个程序正在使用此文件,进程无法访问”
- 另一个程序正在使用此文件,进程无法访问
- iis提示“另一个程序正在使用此文件,进程无法访问”解决办法