在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()
函數來實現類似的功能。