河野真治 @ 琉球大学情報工学です。

In article <d89jfu$270q@utogw.gssm.otsuka.tsukuba.ac.jp>, kuno@gssm.otsuka.tsukuba.ac.jp writes
>   そもそもmmapしただけで書いていない範囲はファイルとして保存され
> ないという風にできてるんでんでは? 

そうなんだけど、最初に mmap(file,length,protocol,flag,fd,offset)
ってな感じで length を指定してしまいますよね。その length を
変えるのどうやるのかなってわけです。

munmap して、再mmap でもいいんだけど。munmap は msync するの
かな? 複数 mmap するのも嫌だなと思ったけど、それが現実的か?

>   ファイルサイズの上限を設けていいのなら(普通設けるよね)、64ビッ
> トアドレスあればたいていの用事には足りるんでは。
>        FreeBSDのman見たら2GBとかいう上限があるんですね。   久野

それは、そうなんですが... 複数開ける時に、どういうメモリマップ
にするんだろう?

  2^0          2^16         2^32        2^32*1.5      2^64
  |--======----|------------|--------------|----------|
  |--======----|------------|-=======------|----------|
  |--======----|-====-------|-=======------|----------|
  |--======----|-====-------|-=======------|-====-----|

ってな感じか? まさかね....

やっぱり常識的なファイルの大きさで制限する方が普通だろうなぁ。
重なったときは、再mmapするということなんだろうな。だとすると、
やっぱり伸長するときは、munmap/mmap なんでしょうね。

---
Shinji KONO @ Information Engineering, University of the Ryukyus
河野真治 @ 琉球大学工学部情報工学科