Unix-system-calls-brk

提供:Dev Guides
移動先:案内検索

[top]#

|http://www.google.com/[Google] | a|

Web This Site
  • 初心者向けのUnix *
  • 高度なUnix *

選択した読書

Copyright©2014 by finddevguides

[cols=",,,,,,,",]

| |  Home   | |  References   | |  Discussion Forums   | |  About TP  

[width="100%",cols="100%",]

a| == brk()-Unix、Linuxシステムコール

[[File:]] image :http://www.finddevguides.com/images/next.gif [next] image:http://www.finddevguides.com/add- this.gif [AddThisソーシャルブックマークボタン]

広告

NAME

brk、sbrk-データセグメントサイズの変更

概要

#include <unistd.h> int brk(void* end_data_segment); void *sbrk(intptr_t increment);

説明

*brk* ()は、データセグメントの終わりを_end_data_segment_で指定された値に設定します。その値が妥当な場合、システムに十分なメモリがあり、プロセスは最大データサイズを超えません( *setrlimit* (2)を参照) 。
*sbrk* ()は、プログラムのデータ領域を_increment_バイトだけ増やします。 *sbrk* ()はシステムコールではなく、単なるCライブラリラッパーです。 0の増分で *sbrk* ()を呼び出すと、プログラムブレークの現在の場所を見つけることができます。

返り値

成功すると、 brk ()はゼロを返し、 sbrk ()は新しい領域の開始点へのポインターを返します。 エラーの場合、-1が返され、_errno_が ENOMEM に設定されます。

準拠

4.3BSD; SUSv2でLEGACYとマークされたSUSv1は、POSIX.1-2001で削除されました。

*brk* ()および *sbrk* ()はC標準では定義されておらず、POSIX.1標準から意図的に除外されています(B.1.1.1.3およびB.8.3.3項を参照)。

ノート

さまざまなシステムが sbrk ()のパラメーターにさまざまなタイプを使用しています。 一般的なのは、int _、 ssize_t ptrdiff_t intptr_t_です。

関連項目

[[File:]] image :http://www.finddevguides.com/images/next.gif [next] [[File:]]

広告

|  

[cols="^",]

|Advertisements