□保存方法□
1、fd = open(,,) によって保存先を開く。
2、必要サイズを算出する(ページサイズの倍数に切り上げ)
3、ファイルの必要サイズ先にシークし、0 を書き込む
4、open() の際に出力された fd を用いて、mmap() でマップする。
5、通常のポインタのようなアクセス方法で値を書き込む
6、msync() で同期をとった上で、munmap() でアンマップ、close() でファイルを閉じる。
□再利用□
1、fd = open(,,) によって保存先を開く。
2、必要サイズを算出する(ページサイズの倍数に切り上げ)
3、open() の際に出力された fd を用いて、mmap() でマップする。
4、通常のポインタのようなアクセス方法でグラフデータをコピーする。
5、munmap() でアンマップ、close() でファイルを閉じる。
□用いたおもな関数群□
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
int open(const char *pathname, int flags, mode_t mode);
#include <unistd.h>
int close(int fd);
#include <sys/types.h>
#include <unistd.h>
off_t lseek(int fd, off_t offset, int whence);
#include <unistd.h>
ssize_t read(int fd, void *buf, size_t count);
#include <unistd.h>
ssize_t write(int fd, const void *buf, size_t count);
#include <sys/mman.h>
void *mmap(void *start, size_t length, int prot, int flags, int fd, off_t offset);
int munmap(void *start, size_t length);
#include <sys/mman.h>
int msync(void *start, size_t length, int flags);
1、fd = open(,,) によって保存先を開く。
2、必要サイズを算出する(ページサイズの倍数に切り上げ)
3、ファイルの必要サイズ先にシークし、0 を書き込む
4、open() の際に出力された fd を用いて、mmap() でマップする。
5、通常のポインタのようなアクセス方法で値を書き込む
6、msync() で同期をとった上で、munmap() でアンマップ、close() でファイルを閉じる。
□再利用□
1、fd = open(,,) によって保存先を開く。
2、必要サイズを算出する(ページサイズの倍数に切り上げ)
3、open() の際に出力された fd を用いて、mmap() でマップする。
4、通常のポインタのようなアクセス方法でグラフデータをコピーする。
5、munmap() でアンマップ、close() でファイルを閉じる。
□用いたおもな関数群□
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
int open(const char *pathname, int flags, mode_t mode);
#include <unistd.h>
int close(int fd);
#include <sys/types.h>
#include <unistd.h>
off_t lseek(int fd, off_t offset, int whence);
#include <unistd.h>
ssize_t read(int fd, void *buf, size_t count);
#include <unistd.h>
ssize_t write(int fd, const void *buf, size_t count);
#include <sys/mman.h>
void *mmap(void *start, size_t length, int prot, int flags, int fd, off_t offset);
int munmap(void *start, size_t length);
#include <sys/mman.h>
int msync(void *start, size_t length, int flags);