Tôi đang triển khai chương trình bằng C++ sử dụng ifstream phải tìm kiếm các tệp lớn (~ 1TB). Tuy nhiên, điều này không thành công sau khi đọc 2GB. Có cách nào để lấy các vị trí tệp, ngay cả đối với các tệp lớn không? Tôi biên dịch cho một máy tính 32-bit windows.Tìm kiếm trong các tệp lớn với ifstream
std::ifstream f;
f.open(filename.c_str(), std::ifstream::in | std::ifstream::binary);
while(true) {
std::cout << (uint64_t)(f.tellg()) << std::endl;
//read data
}
Tôi không biết nếu điều này thực sự thay đổi bất cứ điều gì, nhưng bạn đã thử bằng cách sử dụng các thay thế đồng bằng C của các tập tin đọc? – stefan
@stefan có trình xử lý vị trí tệp C đơn giản có kích thước lớn hơn 32 bit? – triclosan
@triclosan như tôi đã nói: Tôi không biết, đó chỉ là một ý tưởng – stefan