私はファイルにlinked_listを維持するプログラムを書いています。そこで、tellp()/ tellg()を使用してファイルをトラバースし、それを特定の長整数(オフセットと見なすことができます)に追加して、新しい場所に移動します。
簡単な例は
long next_offset = sizeof(long) + sizeof(int) ....
//like size of all the elements in the record, etc
curr_node = out.seekg();
while(curr_node != -1) {
out.read(...);
**curr_node.seekg(curr_node.tellp() + next_offset);**
out.read((char *)&curr_node,sizeof(long));
}
だからここでは基本的にtellp()の値を長く保存し、長い追加をdngしていますが、これは問題ありませんか?または、pos_valueが大きくなるとビットが失われる可能性がありますか?