_dos_allocmem, _dos_freemem, _dos_setblock - DOS窓メモリ管理
【書式】
#include <dos.h>
unsigned _dos_allocmem(unsigned size, unsigned *seg);
unsigned _dos_freemem(unsigned seg);
unsigned _dos_setblock(unsigned size, unsigned seg, unsigned
*maxsize);
【解説】
_dos_allocmem() はDOS窓システムコール0x48によってsizeパラグラフのメ
モリブロックを割り当てます。成功すると*segにそのセグメントディスクリ
プタをセットします。失敗すると*segには割り当て可能な最大のパラグラフ
数をセットします。
_dos_freemem()は_dos_allocmem()によって割り当てられたsegで示されるメ
モリブロックを解放します。DOS窓システムコール0x49を実行します。
_dos_setblock()はDOS窓システムコール0x4Aを実行し、_dos_allocmem()に
よって割り当てられたseg で示されるメモリブロックのパラグラフサイズを
sizeに変更します。失敗すると*maxsizeに使用可能な最大のパラグラフ数を
セットします。
【リターン値】
それぞれ、成功すると0を返します。失敗するとerrnoをセットし、DOS窓の
エラーコードを返します。
【エラー】
ENOMEM
メモリが不足しました
ENOMEM
MCB が破壊されています
ENOMEM
セグメントディスクリプタが不正です
【可搬性】
DOS窓
【参照】
malloc(3)
【copyright (c) 安江正樹@東海大学理学部物理学科】