文件截断的应用场景是什么?为何要进行截断?


我是学习嵌入式驱动的,觉得有点闲,所以就看了看一些C++等用户空间的编程方法。编程经验比较少,看到文件截断,有点搞不清楚其使用的场景,是为了节省空间吗?

9 个解决方案

#1


不知你说的截断是什么,从文件中截取想要的部分吧

#2


SetEndOfFile
The SetEndOfFile function moves the end-of-file (EOF) position for the specified file to the current position of the file pointer. 

BOOL SetEndOfFile(
  HANDLE hFile   // handle of file whose EOF is to be set
);
 
Parameters
hFile 
Handle to the file to have its EOF position moved. The file handle must have been created with GENERIC_WRITE access to the file. 
Return Values
If the function succeeds, the return value is nonzero.

If the function fails, the return value is zero. To get extended error information, call GetLastError. 

Remarks
This function can be used to truncate or extend a file. If the file is extended, the contents of the file between the old EOF position and the new position are not defined. 

If you called CreateFileMapping to create a file-mapping object for hFile, you must first call UnmapViewOfFile to unmap all views and call CloseHandle to close the file-mapping object before you can call SetEndOfFile.

QuickInfo
  Windows NT: Requires version 3.1 or later.
  Windows: Requires Windows 95 or later.
  Windows CE: Requires version 1.0 or later.
  Header: Declared in winbase.h.
  Import Library: Use kernel32.lib.

See Also
File I/O Overview, File Functions, CloseHandle, CreateFile, CreateFileMapping, UnmapViewOfFile 

 

#3


引用 1 楼 paschen 的回复:
不知你说的截断是什么,从文件中截取想要的部分吧

有点不一样的样子,好像基本上是删除文件的后半段。。。我不懂才问的

#4


引用 1 楼 paschen 的回复:
不知你说的截断是什么,从文件中截取想要的部分吧

有点不一样的样子,好像基本上是删除文件的后半段。。。我不懂才问的

#5


引用 2 楼 zhao4zhong1 的回复:
SetEndOfFile
The SetEndOfFile function moves the end-of-file (EOF) position for the specified file to the current position of the file pointer. 

BOOL SetEndOfFile(
  HANDLE hFile   // handle of file whose EOF is to be set
);
 
Parameters
hFile 
Handle to the file to have its EOF position moved. The file handle must have been created with GENERIC_WRITE access to the file. 
Return Values
If the function succeeds, the return value is nonzero.

If the function fails, the return value is zero. To get extended error information, call GetLastError. 

Remarks
This function can be used to truncate or extend a file. If the file is extended, the contents of the file between the old EOF position and the new position are not defined. 

If you called CreateFileMapping to create a file-mapping object for hFile, you must first call UnmapViewOfFile to unmap all views and call CloseHandle to close the file-mapping object before you can call SetEndOfFile.

QuickInfo
  Windows NT: Requires version 3.1 or later.
  Windows: Requires Windows 95 or later.
  Windows CE: Requires version 1.0 or later.
  Header: Declared in winbase.h.
  Import Library: Use kernel32.lib.

See Also
File I/O Overview, File Functions, CloseHandle, CreateFile, CreateFileMapping, UnmapViewOfFile 

 

所以说EOF是一种截断手段?

#7


删除文件后半段,不过有什么用途啊

#8


想删除不要的内容恰好全部位于文件末尾时……

#9


比如一个文件由一些记录组成,用删除标记了一些不用的记录(没有真正删除),然后文件太大需要压缩整理文件,就把后面有用的记录挪到前面空的位置(标记为删除的记录位置),最后截断文件。
智能推荐

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
© 2014-2019 ITdaan.com 粤ICP备14056181号  

赞助商广告