温馨提示×

利用C++ truncate实现文件大小限制的方法

c++
小樊
99
2024-09-10 18:42:17
栏目: 编程语言
C++开发者专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

在C++中,你可以使用truncate()函数来实现文件大小限制

#include<iostream>
#include <fcntl.h>
#include <unistd.h>
#include <sys/stat.h>
#include <cstring>

int main() {
    const char *file_path = "example.txt";
    off_t max_size = 1024; // 设置最大文件大小为1KB

    int fd = open(file_path, O_RDWR | O_CREAT, S_IRUSR | S_IWUSR);
    if (fd == -1) {
        std::cerr << "Error opening file: "<< strerror(errno)<< std::endl;
        return 1;
    }

    // 将文件截断到指定大小
    if (ftruncate(fd, max_size) == -1) {
        std::cerr << "Error truncating file: "<< strerror(errno)<< std::endl;
        close(fd);
        return 1;
    }

    // 关闭文件描述符
    close(fd);

    std::cout << "File size has been limited to "<< max_size << " bytes."<< std::endl;
    return 0;
}

这个示例程序首先打开一个名为example.txt的文件(如果不存在,则创建它)。然后,它使用ftruncate()函数将文件大小限制为1KB。最后,关闭文件描述符。

请注意,这个示例仅适用于UNIX和类UNIX系统(如Linux和macOS)。在Windows上,你需要使用_chsize()函数来实现类似的功能。

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读:C++ truncate函数在日志记录中的价值

0