jjzjj

ReadFile

全部标签

c++ - Windows 文件 : using both ReadFile and mapping

假设我在磁盘上有一个文件,然后使用CreateFile创建它的句柄,使用CreateFileMapping创建它的映射对象,使用MapViewOfFile创建它的映射View.虚拟内存中文件地址的开始保存在指针StartPtr中,该指针由MapViewOfFile函数返回。如果在调用CreateFileMapping函数之前,我使用ReadFile读取一些字节N,则MapViewOfFile返回的指针>指向(StartPtr+N)? 最佳答案 没有。MapViewOfFile()要求您告诉它View相对于文件开头的映射位置。在dwF

c++ - 程序员思维过程 : determining a maximum number of bytes to read when using ReadFile with the Windows API

我需要调用WindowsAPI的ReadFile函数:BOOLWINAPIReadFile(_In_HANDLEhFile,_Out_LPVOIDlpBuffer,_In_DWORDnNumberOfBytesToRead,_Out_opt_LPDWORDlpNumberOfBytesRead,_Inout_opt_LPOVERLAPPEDlpOverlapped);我感兴趣的论点是第三个:nNumberOfBytesToRead[in]Themaximumnumberofbytestoberead.我对放在那里的“魔数(MagicNumber)”不太感兴趣,但是经验丰富的程序员确定放

c++ - 可能在 ReadFile() 上超时?

while(GetExitCodeProcess(processInfo.hProcess,&exitCode)&&exitCode==STILL_ACTIVE){ReadFile(defaultSTDIN,chBuf,1,&dwRead,0);WriteFile(writingEnd,chBuf,1,&dwWritten,0);}上面代码的问题在于,即使通过processInfo.hProcess引用的子进程已经退出,我们仍然停留在while循环中,因为ReadFile()正在等待输入。解决这个问题的最佳方法是什么? 最佳答案 您

windows - 为什么 WriteFile 调用 ReadFile 以及如何避免它?

当在文件的现有部分(有时/总是?)中顺序覆盖(例如8192字节对齐和大小的block)时,WriteFile会导致从磁盘读取文件,这完全破坏了性能。我不太明白为什么会发生这种情况以及如何避免这种情况。使用ProcessMonitor我得到以下信息:Event.Class:FileSystemEvent.Operator:ReadFileEvent.Offset:1 875 288 653 824Event.Length:4 096Event.I/OFlags:Non-cached,PagingI/O,SynchronousPagingI/OEvent.Priority:Normal0F

unit-testing - 如何测试 ioutil.ReadFile 和 os.Stat?

我有以下功能:funcGetDataFromFile(pathstring)([]byte,error){_,err:=os.Stat(path)iferr!=nil{returnnil,err}data,err:=ioutil.ReadFile(path)iferr!=nil{returnnil,err}returndata,nil}我想在函数ioutil.ReadFile和os.Stat(path)抛出错误时对其进行测试。我知道我可以为os.Stat(path)创建不存在的路径,但是如何在没有“解决方法”和猜测函数工作方式的情况下测试此类函数?问候。 最

image - 为什么 ioutil.ReadFile() 在 for 循环中被调用后挂起?

我编写了一个将图像转换为base64字符串的函数:funcgetBase64Screenshot()string{//ImagenameimageName:="Screenshots/screenshot.png"imageFileBytes,err:=ioutil.ReadFile(imageName)handleError(err)//Convertsfiletobase64stringencoded:=base64.StdEncoding.EncodeToString(imageFileBytes)returnencoded}上述函数在for循环中调用,但是在for循环的一些迭代

go - 防止 ReadFile 或 ReadAll 读取 EOF

我开始学习Go,我对它在使用ioutil.ReadFile时包含EOF这一事实感到有点困惑。功能。例如,我想读取一个文件并解析字段分隔符上的所有行。示例输入文件:CZG;KCZG;sometextEKY;KEKY;sometextA50;KA50;sometextUKY;UCFL;sometextMIC;KMIC;sometextK2M;K23M;sometext这是我读取和解析该文件的方式:import("fmt""log""io/ioutil""strings")funcmain(){/*Readfile*/airportsFile:="/path/to/file/ad_iata"

go - 是否有比 ioutil.ReadFile 更快的替代方案?

我正在尝试制作一个基于md5校验和检查文件重复项的程序。不太确定我是否遗漏了什么,但是读取XCode安装程序应用程序(大约8GB)的这个函数使用了16GB的Ramfuncsearch(){unique:=make(map[string]string)files,err:=ioutil.ReadDir(".")iferr!=nil{log.Println(err)}for_,file:=rangefiles{fileName:=file.Name()fmt.Println("CHECKING:",fileName)fi,err:=os.Stat(fileName)iferr!=nil{f

testing - 我将如何在 go 中模拟对 ioutil.ReadFile 的调用?

我有以下功能:funcObtainTranslationStringsFile(pathstring)([]string,error){ifcontents,err:=ioutil.ReadFile(path);err!=nil{returnObtainTranslationStrings(string(contents))}else{returnnil,err}}我需要模拟ioutil.ReadFile,但我不确定该怎么做。可能吗? 最佳答案 如果你想模拟这个,有几种方法可以处理这个问题。第一个,也许是最简单的,是改变使用iout

io - 在 Go 中使用 ioutil.ReadFile() 读取 1200 多个文件时出错

我正在尝试读取目录中的所有文件(+10.000),但是当我处理了大约1400个文件时,我收到“打开的文件太多”错误。我已经添加了对垃圾收集器的显式调用,但这似乎对我的问题没有多大作用。我检查了ioutil包的源代码,ReadFile在内部使用了deferfile.Close()(正如预期的那样)。那么这里出了什么问题?constTEMPLATE=`{"source_db":"CDARCHIEF","doc_type":"%s","referentie":"%s","bestandsnaam":"%s","tekst":"%s"}`constMAPPING=`{...}`varDIR,D