JM プロジェクトは、主に Linux 関連のマニュアルページの日本語ページを翻訳・公開しています。
... lled. */ printf("Got SIGSEGV at address: %p\n", si->si_addr); exit(EXIT_FAILURE); } int main(int argc, char *argv[]) { int pagesize; struct sigaction sa; sa.sa_flags = SA_SIGINFO; sigemptyset(&sa.sa_mask); sa.sa_sigaction = handler; if (sigaction(SIGSEGV ... , &sa, NULL) == -1) handle_error("sigaction"); pagesize = sysconf(_SC_PAGE_SIZE); if (pagesize == -1) handle_error("sysconf"); /* Allocate a buffer aligned on a page boundary; in ... itial protection is PROT_READ | PROT_WRITE */ buffer = memalign(pagesize, 4 * pagesize); if (buffer == NULL) handle_error("memalign"); printf("Start of region: %p\n", buffer); if (mprotect(buffer ... ... lled. */ printf("Got SIGSEGV at address: %p\n", si->si_addr); exit(EXIT_FAILURE); } int main(int argc, char *argv[]) { int pagesize; struct sigaction sa; sa.sa_flags = SA_SIGINFO; sigemptyset(&sa.sa_mask); sa.sa_sigaction = handler; if (sigaction(SIGSEGV ... , &sa, NULL) == -1) handle_error("sigaction"); pagesize = sysconf(_SC_PAGE_SIZE); if (pagesize == -1) handle_error("sysconf"); /* Allocate a buffer aligned on a page boundary; in ... itial protection is PROT_READ | PROT_WRITE */ buffer = memalign(pagesize, 4 * pagesize); if (buffer == NULL) handle_error("memalign"); printf("Start of region: %p\n", buffer); if (mprotect(buffer ... ... EN_MAX - _SC_OPEN_MAX 一つのプロセスが同時にオープンできるファイル数の上限。 _POSIX_OPEN_MAX (20) 未満であってはならない。 PAGESIZE - _SC_PAGESIZE バイト単位でのページサイズ。 1 より小さくなってはならない。 PAGE_SIZE - _SC_PAGE_SIZE A synonym for PAGESIZ ... E / _SC_PAGESIZE . (Both PAGESIZE and PAGE_SIZE are specified in POSIX.) RE_DUP_MAX - _SC_RE_DUP_MAX regexec (3) と regcomp (3) で許容されて ... トされているかを示す。 以下の値も存在するが、標準には含まれていない。 - _SC_PHYS_PAGES 物理メモリーのページ数。 この値と _SC_PAGESIZE 値の積は桁溢れする可能性があるので注意すること。 - _SC_AVPHYS_PAGES 現在利用可能な物理メモリーのページ数。 - _SC_NPROCESSO ... ... macros (7) 参照): getpagesize (): glibc 2.19 以降: _DEFAULT_SOURCE || ! (_POSIX_C_SOURCE >= 200112L) glibc 2.12 から 2.19 まで: _BSD_SOURCE || ! (_POSIX ... _C_SOURCE >= 200112L) glibc 2.12 より前: _BSD_SOURCE || _XOPEN_SOURCE >= 500 説明 getpagesize () 関数はメモリーページの大きさをバイト数で返す。 ここでいう「ページ」は固定長のブロックであり、 mmap (2) で実行されるメモ ... リー割り当てとファイルマッピングの単位である。 準拠 SVr4, 4.4BSD, SUSv2. SUSv2 では getpagesize () システムコールは「過去の遺物 (LEGACY)」とされており、 POSIX.1-2001 からは外されている。 HP-UX にはこのシステムコールは存 ... ... シーク可能でなくてはならない。 key が NULL でなく、かつ既にマップされているファイルにマッチした場合、 fd 引数は無視される。 pagesize 引数はバイト単位でのページサイズであり、ファイルはこのサイズに分割される。 maxcache 引数は基ファイルをキャッシュするときに ... ... 情報が返されるので、事実上 length はページサイズの倍数に切り上げられることになる。 ページサイズ ( PAGE_SIZE ) は sysconf(_SC_PAGESIZE) を使って入手できる。 vec 引数は、少なくとも (length+PAGE_SIZE-1) / PAGE_SIZE バイトが格納できる配列を指していなければなら ... ... では _POSIX_MEMLOCK_RANGE が < unistd.h > で定義されている。 また、ページあたりのバイト数は、 < limits.h > で定義される定数 PAGESIZE から (定義されている場合)、もしくは sysconf(_SC_PAGESIZE) を呼び出すことで決定できる。 mlockall () と munlockall () が利用 ... ... では _POSIX_MEMLOCK_RANGE が < unistd.h > で定義されている。 また、ページあたりのバイト数は、 < limits.h > で定義される定数 PAGESIZE から (定義されている場合)、もしくは sysconf(_SC_PAGESIZE) を呼び出すことで決定できる。 mlockall () と munlockall () が利用 ... ... では _POSIX_MEMLOCK_RANGE が < unistd.h > で定義されている。 また、ページあたりのバイト数は、 < limits.h > で定義される定数 PAGESIZE から (定義されている場合)、もしくは sysconf(_SC_PAGESIZE) を呼び出すことで決定できる。 mlockall () と munlockall () が利用 ... ... 設定される。 エラー EBUSY I flags に MS_INVALIDATE が指定されたが、指定されたアドレス範囲にロックが存在する。 EINVAL addr が PAGESIZE の倍数でない。または、 flags に MS_ASYNC 、 MS_INVALIDATE 、 MS_SYNC 以外のビットが設定された。 または、 flags に MS_SYNC ... 日本語の文書やマニュアルを配布している個人/プロジェクトへのリンクです。