0

int brk(void *end_data_segment); のマニュアル 「brk() は、データ セグメントの末尾を end_data_segment で指定された値に設定します」

成功すると 0 を返し、それ以外は -1 を返します。

しかし、ブレークの初期値 (sbrk(0) など) を取得するにはどうすればよいですか?

よろしくお願いします、

4

1 に答える 1

0

マニュアルには次のように記載されています。

成功すると、brk() はゼロを返します。エラーの場合、-1 が返され、errno が ENOMEM に設定されます。

したがって、 を呼び出して初期値を取得する方法はありませんbrk。代わりに、お気づきのように、次を使用する必要がありますsbrk(0)

sbrk() は、プログラムのデータ空間をインクリメント バイトだけインクリメントします。インクリメント 0 で sbrk() を呼び出すと、プログラム ブレークの現在の位置を見つけることができます。

brkによって既に提供されている場合、この機能も提供することを期待する理由はありませんsbrk(0)。そうは言っても、 /mmapに対する特定のオペレーティング システムの制限により、メモリ割り当てのニーズに対して一般的にuse を使用する方が賢明かもしれません。brksbrk

于 2013-01-13T19:46:00.543 に答える