- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用函数 ftruncate()
来截断文件。
我从网上查到事情是这样的:
int ftruncate(int fildes, off_t length);
但我不知道为参数 int fd
和 off_t length
提供什么。
最佳答案
第一个参数是文件描述符。这是您从 open(3)
等函数获得的文件句柄。或creat(3)
。第二个参数是您想要将文件截断到的大小。如果您想完全截断它,请使用 0
。最后,如果操作成功,则返回值为 0
,否则返回值为 -1
(并相应地设置 errno(3)
)。欲了解更多信息,请参阅ftruncate(3)
.
但是,您可能会感到困惑,因为您尝试使用 POSIX 函数而不是 C 或 C++ 标准函数。如果是这样,请查看How to truncate a file in C?以及仅依赖 C 或 C++ 标准的解决方案的类似问题。
关于c - ftruncate() 的参数是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49488837/
我试图在 shm_open 和 ftruncate 之后成功地超出共享内存对象。这是代码, char *uuid = GenerateUUID(); int fd = shm_open(uuid, O
我想在每个循环中截断一个文件并重新写入。所以,我使用下面的代码。 但是,这里发生的是我在每个循环的开始处获得了一些额外的空间。没有空间,因为第一次没有添加空间(我也尝试了修剪功能)。 你能帮帮我吗?
我正在尝试使用函数 ftruncate() 来截断文件。 我从网上查到事情是这样的: int ftruncate(int fildes, off_t length); 但我不知道为参数 int fd
我正在尝试用 C++ 编写一个类,它提供一种原子追加到文件的方法,即使在写入过程中出现电源故障的情况下也是如此。 首先,我将当前文件位置(从文件开头开始的 64 位偏移量,以字节为单位)写入一个单独的
我的应用程序尝试用 ftruncate() 和 mmap() 编辑 32-33KB 和 2MB 大页面,但它退出了。 然后我意识到 ftruncate() 失败了: int fd = open("/m
我正在尝试制作一个 C 程序,通过使用 ftruncate 截断或扩展输入文件来将输入文件的大小更改为所需的大小。它还必须使用命令行参数。 例如,以下是有效输入: ./changefilesize d
我正在尝试打开一个共享内存文件并写入其中。问题是 ftruncate 正在返回 -1。 这是我的代码: #include #include #include #include #include
来自 http://pubs.opengroup.org/onlinepubs/7908799/xsh/ftruncate.html 的描述,不是很清楚 ftruncate 是如何工作的。 如果假设,
我想通过使用此文档来构建android源代码: https://source.android.com/source/building-running.html 最后一步是:'make -j16' 一段
我正在尝试修改文件的大小。我正在使用 msys2。我的代码如下所示: #include #include #include void dummy_file(){ FILE *f = fo
据我所知,当我将文件扩展到 2 GB 长度时,ftruncate(2) 不能是原子的。 但幕后究竟发生了什么?我已经应用它,当多个线程扩展文件时它似乎工作正常,但我不确定它是否不会导致任何数据丢失。
我查看了来自 here 的 ftruncate 文档,以及来自 here .对于 IBM 链接,我相应地实现了 ftruncate,但它给我 Invalid Arguments 错误。这是代码: ch
他们都可以根据我的测试改变文件大小。为什么他们都可以将文件更改为更大或更短?fallocate 和 ftruncate 有什么区别? 最佳答案 ftruncate 是一个简单的单一用途函数。 Per
平台是 ARM 上的 Ubuntu Linux。我想将一个字符串写入文件,但我希望每次都截断文件然后写入字符串,即不追加。 我有这个代码: f=fopen("/home/user1/refresh.t
来自 shm_open 手册页: A new shared memory object initially has zero length. The size of the object can be
我想创建一个共享内存对象并将其截断为特定大小。 SHMSIZE定义为512 MODE 设置为 S_IRUSR | S_IWUSR | S_IWGRP | S_IRGRP | S_IWOTH | S_I
当我们创建共享内存时,我们使用 shm_open() 和 ftruncate() 函数。根据我的信息,shm_open() 创建一个共享内存区域。然后我们使用 ftruncate() 函数来配置共享内
我有几个问题基于以下来源: #include #include #include #include int g; int main(void) { int fd = shm_open(
当我想在 linux 中映射一些共享内存时,我会这样做: hFileMap = open(MapName, O_RDWR | O_CREAT, 438); pData = mmap(NULL, Siz
这里的最终目标是我希望能够扩展共享内存段的大小并通知进程在扩展后重新映射该段。然而,似乎在共享内存 fd 上第二次调用 ftruncate 失败并返回 EINVAL。我能找到的唯一其他问题没有答案:f
我是一名优秀的程序员,十分优秀!