OpenVMS
HP C ランタイム・ライブラリ・
リファレンス・マニュアル (下巻)


前へ 次へ 目次 索引



modf

浮動小数点数を分解します。

形式

#include <math.h>

double modf (double x, double *iptr);

float modff (float x, float *iptr); (Alpha only)

long double modfl (long double x, long double *iptr); (Alpha only)


引数

x

double, float,または long double型のオブジェクト。

iptr

x の型に対応する double, float, または long double型のオブジェクトへのポインタ。

説明

modf関数は,第 1 引数の x を,それぞれ x と同じ符号を持つ,正の小数部 f と整数部 i に分解します。

この関数は f を返し,第 2 引数 (iptr) がポイントするオブジェクトに i を代入します。


戻り値

x 引数 x の小数部。
NaN x は NaN です。 errno は EDOM に設定され, * iptr は NaN に設定されます。
0 アンダフローが発生しました。 errno は ERANGE に設定されます。


[w]move

指定されたウィンドウ上の現在のカーソル位置を,座標 (y, x) に変更します。 move関数は stdscrウィンドウに作用します。

形式

#include <curses.h>

int move (int y, int x);

int wmove (WINDOW *win, int y, int x);


引数

win

ウィンドウへのポインタ。

y

ウィンドウ座標。

x

ウィンドウ座標。

説明

詳細については, scrollok関数を参照してください。

戻り値

OK 成功を示します。
ERR 関数がスクリーンに不正なスクロールを引き起こすことを示します。


mprotect

メモリ・マッピングのアクセス保護を変更します。

形式

#include <mman.h>

int mprotect (void *addr, size_t len, int prot);


引数

addr

変更しようとしているリージョンのアドレス。

len

変更しようとしているリージョンのバイト長。

prot

<mman.h>ヘッダ・ファイルに定義されているアクセス許可。 PROT_NONE,PROT_READ,または PROT_WRITE を指定します。

説明

mprotect関数は,マップされたファイルまたは共用メモリ・リージョンのアクセス保護を変更します。

addr および len 引数は,変更しようとしているリージョンのアドレスとバイト長を指定します。 len 引数は, sysconf(_SC_PAGE_SIZE)から返されるページ・サイズの倍数でなくてはなりません。 lensysconf(_SC_PAGE_SIZE)から返されるページ・サイズの倍数でなかった場合,リージョンの長さは,ページ・サイズの次の倍数に切り上げられます。

prot 引数は,マップされたリージョンのアクセス許可を指定します。以下のいずれかを指定します。

PROT_NONE アクセスなし
PROT_READ 読み込み専用
PROT_WRITE 読み書きアクセス

mprotect関数は,指定されたリージョンの外に位置するリージョンのアクセス許可を変更しません。ただし,リージョンの終端と,リージョンの終端を含んでいるページの終端の間のアドレスに対する効果は定められていません。

mprotect関数が, EINVAL で指定される条件以外の条件で実行に失敗した場合,範囲 [addr, addr + len] にある一部のページのアクセス保護は変更される可能性があります。たとえば,addr2 にある何らかのページでエラーが起こった場合, mprotectは範囲 [addr, addr2] にあるすべてのページの保護を変更する可能性があります。

sysconfも参照してください。


戻り値

0 成功を示します。
- 1 エラーを示します。 errno は以下のいずれかの値に設定されます。

  • EACCESS--- prot 引数は,下位のファイルのアクセス許可と矛盾する保護を指定している。

  • EINVAL--- prot 引数が無効であるか, addr 引数が sysconf(_SC_PAGE_SIZE) から返されるページ・サイズの倍数でない。

  • EFAULT---範囲 [ addr, addr + len] に無効なアドレスが含まれている。


mrand48

一様分布の擬似乱数列を生成します。48 ビットの符号付き long 整数を返します。

形式

#include <stdlib.h>

long int mrand48 (void);


説明

mrand48関数は,線形合同法アルゴリズムと 48 ビット整数算術演算を使用して,擬似乱数を生成します。

この関数は, -231 <= y < 231 の範囲内で一様に分布する,符号付き long 整数を返します。

mrand48関数を呼び出す前に, srand48, seed48, または lcong48を使用して乱数ジェネレータを初期化してください。初期化は mrand48関数を呼び出す前に行わなくてはなりません。 mrand48は,生成された最後の 48 ビットの Xi を内部バッファに格納するからです ( これは推奨はされませんが, drand48, lrand48,または mrand48関数が,初期化関数を呼び出すことなく呼び出された場合には,定数のデフォルト・イニシアライザ値が自動的に提供されます )。

この関数は,次の線形合同式に従って,48 ビットの整数値 Xi のシーケンスを生成します。


       Xn+1 = (aXn+c)mod m        n >= 0 

引数 m は 248 に等しいので, 48 ビット整数算術演算が実行されます。 lcong48関数を呼び出さなかった場合,乗数値 a と加算される値 c は次のようになります。


      a = 5DEECE66D16 = 2736731631558
      c = B16 = 138

mrand48関数から返される値は,まずシーケンス内の次の 48 ビット Xi を生成することによって計算されます。その後,返されるデータ項目の型に応じて,適切なビットが Xi の最上位ビットからコピーされ,戻り値へと変換されます。

drand48, lrand48, lcong48, seed48, および srand48も参照してください。


戻り値

n -2 31 <=y < 2 31 の範囲で一様分布する,符号付き long 整数を返します。


msync

マップされたファイルを同期化します。

形式

#include <mman.h>

int msync (void *addr, size_t len, int flags);


引数

addr

同期化するリージョンのアドレス。

len

同期化するリージョンのバイト長。

flags

<mman.h>ヘッダ・ファイルに定義されている以下のシンボリック定数のうちの 1 つ。

MS_SYNC 同期キャッシュのフラッシュ
MS_ASYNC 非同期キャッシュのフラッシュ
MS_INVALIDATE キャッシングされたページの無効化


説明

msync関数は,マップされたファイル・リージョンのキャッシング操作を制御します。 msyncを使用すると,以下の操作を行うことができます。

addr および len 引数は,同期化するリージョンを指定します。 len 引数は, sysconf(_SC_PAGE_SIZE)から返されるページ・サイズの倍数でなくてはなりません。そうでなければ,リージョンの長さは次のページ・サイズの倍数に切り上げられます。

flags 引数の設定は,以下の効果を持ちます。

flags 引数 msync 関数の動作
MS_SYNC システムがすべての I/O 操作を完了するまで返らない。
MS_ASYNC システムがすべての I/O 操作のスケジューリングを行った後に返る。
MS_INVALIDATE ページのすべてのキャッシングされたコピーを無効化する。オペレーティング・システムは,次にアプリケーションがページを参照したときに,ページの新しいコピーをファイル・システムから取得しなくてはならない。

各 flags 引数を設定して, msync関数の呼び出しに成功した後の状況は,以下のようになります。

read, write,および sysconfも参照してください。


戻り値

0 成功を示します。
- 1 エラーを示します。 errno は以下のいずれかの値に設定されます。

  • EIO---ファイル・システムの読み書きの際に I/O エラーが発生した。

  • ENOMEM---[ addr, addr + len] によって指定された範囲は,プロセスのアドレス空間内では無効である。または,この範囲は 1 つまたは複数のアンマップされたページを指定している。

  • EINVAL--- addr 引数は, sysconf(_SC_PAGE_SIZE) から返されるページ・サイズの倍数でない。

  • EFAULT---範囲 [ addr, addr + len] は無効なアドレスを含んでいる。


munmap

マップされたリージョンをアンマップします。

形式

#include <mman.h>

int munmap (void *addr, size_t len);


引数

addr

アンマップしたいリージョンのアドレス。

len

アンマップしたいリージョンのバイト長。

説明

munmap関数は,マップされたファイルまたは共用メモリ・リージョンをアンマップします。

addr および len 引数は,アンマップするリージョンのアドレスとバイト長をそれぞれ指定します。

len 引数は, sysconf(_SC_PAGE_SIZE)から返されるページ・サイズの倍数でなくてはなりません。そうでない場合は,リージョンの長さは次のページ・サイズの倍数に切り上げられます。

アンマップされたリージョンに含まれており,それ以降のどのマップされたリージョンにも含まれていないアドレスを使用した場合の結果は未定義です。

sysconfも参照してください。


戻り値

0 成功を示します。
- 1 エラーを示します。 errno は以下のいずれかの値に設定されます。

  • ENIVAL--- addr 引数は, sysconf(_SC_PAGE_SIZE) から返されるページ・サイズの倍数でない。

  • EFAULT---範囲 [ addr, addr + len] は無効なアドレスを含んでいる。


mv[w]addch

カーソルを座標 (y,x) に移動し,指定されたウィンドウに文字を追加します。

形式

#include <curses.h>

int mvaddch (int y, int x, char ch);

int mvwaddch (WINDOW *win, int y, int x, char ch);


引数

win

ウィンドウへのポインタ。

y

ウィンドウ座標。

x

ウィンドウ座標。

ch

この引数が改行文字 (\n) である場合, mvaddchおよび mvwaddch関数は行を終端までクリアし,カーソルを次の行の同じ x 座標に移動します。キャリッジ・リターン (\r) は,カーソルを指定された行の先頭に移動します。タブ (\t) は,カーソルをウィンドウ内の次のタブストップに移動します。

説明

このルーチンは, mvwaddchと同じ機能を, stdscrウィンドウに対して実行します。

サブウィンドウに対して使用された場合, mvwaddchは下位のウィンドウに対しても文字を書き込みます。


戻り値

OK 成功を示します。
ERR 文字の書き込みがスクリーンに不正なスクロールを引き起こすことを示します。詳細については, scrollok 関数を参照してください。


mv[w]addstr

カーソルを座標 (y,x) に移動し, str がポイントする指定された文字列を,指定されたウィンドウに追加します。

形式

#include <curses.h>

int mvaddstr (int y, int x, char *str);

int mvwaddstr (WINDOW *win, int y, int x, char *str);


引数

win

ウィンドウへのポインタ。

y

ウィンドウ座標。

x

ウィンドウ座標。

str

文字列へのポインタ。

説明

このルーチンは, mvwaddstrと同じ機能を, stdscrウィンドウに対して実行します。

サブウィンドウに対して使用された場合, mvwaddstrは下位のウィンドウに対しても文字列を書き込みます。


戻り値

OK 成功を示します。
ERR 関数がスクリーンに不正なスクロールを引き起こすことを示します。ただし,関数はウィンドウ上に可能な限り文字列を追加します。詳細については, scrollok 関数を参照してください。


mvcur

ターミナルのカーソルを,(lasty,lastx) から (newy,newx) に移動します。

形式

#include <curses.h>

int mvcur (int lasty, int lastx, int newy, int newx);


引数

lasty

カーソル位置。

lastx

カーソル位置。

newy

新しいカーソル位置。

newx

新しいカーソル位置。

説明

HP C for OpenVMS システムでは, mvcurmoveは同じ機能を実行します。

moveも参照してください。


戻り値

OK 成功を示します。
ERR ウィンドウの移動により,ウィンドウの一部または全体がターミナル・スクリーンから外れることを示します。ターミナル・スクリーンは変更されません。


前へ 次へ 目次 索引