タグ

2007年7月18日のブックマーク (2件)

  • IPC: Memory Mapped File | Shinta's Site

    プロセス間で共有される情報を、ファイルを利用して読み書きする。 SYNOPSIS #include <sys/mman.h> void *mmap(void *addr, size_t len, int prot, int flags, int fildes, off_t off); int msync(void *addr, size_t len, int flags); int munmap(void *addr, size_t len); DESCRIPTION 複数のプロセスが、ひとつのファイルを同時にアクセス(読み書き)することがあります。その際に、fseek()関数を利用してファイルを操作するのはとても面倒です。もし、メモリにファイルの内容をマッピングすることができ、それへのポインタを得ることができたならファイルの操作は非常に楽なものになります。それを実現するのがメモリマップド

  • C言語: UNIX最速ファイルコピー

    Created: Kazuki Ohta, 2006/06/14 Last Update: Kazuki Ohta, 2006/06/14 「write(2)の正しい使い方」と同じく、OS演習でやった事の延長線の記事を書いてみる。お題は「UNIX上で大規模ファイルを最速でコピーする方法」だ。一般的に、UNIXでファイルをcopyする際には以下のような方法が有る。 read -> write read -> write with posix_fadvice mmap -> mmap -> memcpy -> fsync mmap -> mmap -> memcpy -> fsync with madvise mmap -> write mmap -> write with madvise read, write, mmap辺りは良いとして、posix_fadviseというシステムコールが有