5
yönetmek Ben kaynağıyla domain özetleyecek.- İlk başta dosya boyutunu
namespace bip=boost::interprocess;
typedef bip::allocator<int, bip::managed_mapped_file::segment_manager> allocator;
typedef bip::vector<int, allocator> vector;
bip::managed_mapped_file m_file(open_or_create, "./file", constant_value);
bip::allocator alloc(m_file.get_segment_manager());
bip::vector *vec = m_file.find_or_construct<vector>("vector")(alloc);
Temeldeki bir dosyanın son boyutunu umursamıyorum, ancak bu değeri tahmin edemiyorum. Altta yatan bir dosyayı yeniden boyutlandıracak herhangi bir yükseltme mekanizması var mı? Yoksa bip :: bad_alloc'u yakalamam ve bunu kendi başıma mı halledmeliyim?
Ah. Çok basit. Doğrudan POSIX mmap'ında ve Boost IOstreams kullanarak benzer zorlukları çözdükten sonra kandırdım diye itiraf etmeliyim. Bakınız bu cevap [C++ ile bir satırı diğeriyle nasıl değiştirebilirim?] (Http://stackoverflow.com/a/17374711/85371). Taşınabilir olmak için nasıl uyguladıklarını merak ediyorum. – sehe