gpt4 book ai didi

c++ - 如何从末尾截断文件? (跨平台)

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:47:44 27 4
gpt4 key购买 nike

我正在尝试寻找一种跨平台的方法来从文件末尾删除 X 字节。

目前我发现:

  • 特定于平台的解决方案(例如 truncate for posix):这是我不想要的,因为我希望 C++ 程序可以在多个平台上运行。

  • 读入整个文件,然后再次写出文件减去我要删除的字节:我想尽可能避免这种情况,因为我希望程序尽可能高效和快速

有什么想法吗?

如果有“转到文件流末尾”的方法/函数,我可以倒回 X 字节并切断文件的其余部分或类似的东西吗?

最佳答案

您认为跨平台功能如何运作?只需像这样制作您自己的功能:

int truncate(int fd, long size)
{
#ifdef _WIN32 || _WIN64
return _chsize(fd, size);
#else
#ifdef POSIX
return ftruncate(fd, size);
#else
// code for other OSes
#endif
#endif
}

关于c++ - 如何从末尾截断文件? (跨平台),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9727287/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com