- 610 名前:デフォルトの名無しさん [05/03/20 02:47:45 ]
- 標準C言語スレで聞いたら怒られたのでこちらで質問させてください。
mmapの動作に関する質問です。 //#include *は省略 #define SIZE 536870912 int main() { void *map; int fd = open("tmp_file", O_RDWR); size_t size = (SIZE / getpagesize() + 1) * getpagesize(); map = mmap(0, size, PROT_READ | PROT_WRITE, MAP_FIXED, fd, 0); munmap(map, SIZE); return 0; } というプログラムを動かすとバスエラーになってしまいます。 また、変数sizeを使わずにSIZEを使うとセグメントエラーになります。 mmapはファイルをメモリに全部読み込まずに必要な分だけキャッシュする とmanに書いてあるように読めたのですが、間違いでしょうか。 環境はFreeBSD 5.3R, gcc 3.4.2です。メモリは512MBです。
|

|