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


前へ 次へ 目次 索引



realloc

第 1 引数がポイントしている領域のサイズを,第 2 引数で指定されたバイト数に変更します。これらの関数は AST リエントラントです。

形式

#include <stdlib.h>

void *realloc (void *ptr, size_t size);

関数バリアント realloc関数は,それぞれ 32 ビットと 64 ビットのポインタ・サイズで使用するための _realloc32_realloc64という名前のバリアントを持っています。ポインタ・サイズ固有の関数の使用方法については,『HP C ランタイム・ライブラリ・リファレンス・マニュアル(上巻)』第 1.10 節を参照してください。

引数

ptr

割り当て済み領域をポイントするポインタか,あるいは NULL。

size

割り当て済み領域の新しいサイズ。

説明

ptr が NULL ポインタである場合, realloc関数の動作は malloc関数と同じです。

領域の内容は,古いサイズと新しいサイズのうちの小さい方までは変更されません。 ANSI C 標準は次のように述べています。「新しいサイズが古いサイズよりも大きい場合,新しく割り当てられるメモリ部分の値は不定である」。古いインプリメンテーションとの互換性のために, HP C は新しく割り当てられたメモリを 0 に初期化します。

効率を高めるために,以前の実際の割り当ては,要求されたサイズよりも大きいサイズで行われた可能性があります。割り当てが mallocで行われた場合,前に要求された割り当てと実際の割り当ての間のメモリ部分の値は不定です。割り当てが callocで行われた場合,そのメモリは 0 に初期化されています。アプリケーションが, reallocがメモリを 0 に初期化することに依存している場合には,最初の割り当てに mallocではなく callocを使用するようにしてください。

freecfreecalloc,および mallocも参照してください。


戻り値

x 領域のアドレス。クォドワードにアラインされています。アドレスが返されるのは,十分なスペースを再割り当てするために,エリアを新しいアドレスに移動しなくてはならないことがあるためです。エリアが移動される場合,以前に占有されていたスペースは解放されます。
NULL スペースの再割り当てを行えないことを示します (十分なスペースがなかった場合など)。


[w]refresh

ターミナル・スクリーンに指定されたウィンドウを再ペイントします。 refresh関数は stdscrウィンドウに作用します。

形式

#include <curses.h>

int refresh();

int wrefresh (WINDOW *win);


引数

win

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

説明

このプロセスの結果として,ウィンドウの中の,サブウィンドウや他のウィンドウに占有されていない部分が,ターミナル・スクリーンに表示されます。占有されているウィンドウ全体をターミナル・スクリーンに表示するには, refreshまたは wrefresh関数の代わりに touchwin関数を呼び出します。

touchwinも参照してください。


戻り値

OK 成功を示します。
ERR エラーを示します。


remove

ファイルを削除します。

形式

#include <stdio.h>

int remove (const char *file_spec);


引数

file_spec

OpenVMS または UNIX スタイルのファイル指定である文字列へのポインタ。ファイル指定は,そのバージョン番号にワイルドカードを含むことができます。したがって,たとえば filename.txt:* という形式のファイルを削除することができます。

説明

ファイル名内でディレクトリを指定し,それがエラーを含んでいる検索リストだった場合, HP C for OpenVMS システムはこれをファイル・エラーとして解釈します。

注意

DECC$ALLOW_REMOVE_OPEN_FILES 機能論理名は,オープン済みのファイルに対する remove関数の動作を制御します。通常は,この操作は失敗します。ただし,POSIX の準拠条件によれば,この操作は成功することになっています。

DECC$ALLOW_REMOVE_OPEN_FILES が有効になっている場合,この POSIX 準拠の動作が行われます。

remove関数と delete関数は, HP C RTL では機能的に等価です。

deleteも参照してください。


戻り値

0 成功を示します。
ゼロ以外の値 失敗を示します。


rename

既存のファイルに新しい名前を与えます。

形式

#include <stdio.h>

int rename (const char *old_file_spec, const char *new_file_spec);


引数

old_file_spec

名前を変更するファイルの既存の名前である文字列へのポインタ。

new_file_spec

ファイルの新しい名前となる文字列へのポインタ。

説明

現在オープンされているファイルの名前を変更しようと試みた場合の動作は未定義です。 1 つの物理デバイスから別の物理デバイスへとファイルの名前を変更することはできません。古いファイル指定と新しいファイル指定は,同じデバイス上に存在している必要があります。

new_file_spec がファイル・タイプを含んでいない場合には, old_file_spec のファイル・タイプが使用されます。名前を変更して,ファイル・タイプをなくすには, new_file_spec にピリオド (.) が含まれていなくてはなりません。たとえば,次のようにすると, SYS$DISK:[]FILE.DAT が SYS$DISK:[]FILE1.DAT に変更されます。


rename("file.dat", "file1"); 

ただし,次の呼び出しは,SYS$DISK:[]FILE.DAT を SYS$DISK:[]FILE1 に変更します。


rename(file.dat", "file1."); 

注意

rename関数はファイル・タイプの特殊な処理を行うので,ファイル名引数を受け付ける C ランタイム・ライブラリ関数の呼び出しで,名前を変更したファイルの名前を指定するときには,呼び出し元は慎重になる必要があります。たとえば,次の rename関数の呼び出しの後,新しいファイルは fopen("bar.dat",...)としてオープンする必要があります。


rename("foo.dat", "bar"); 

rename関数は,DECC$RENAME_NO_INHERIT 機能論理名と DECC$RENAME_ALLOW_DIR 機能論理名の設定に影響されます。

詳細は,『HP C ランタイム・ライブラリ・リファレンス・マニュアル(上巻)』第 1.6 節の DECC$RENAME_NO_INHERIT と DECC$RENAME_ALLOW_DIR の説明を参照してください。


戻り値

0 成功を示します。
ゼロ以外の値 失敗を示します。


rewind

ファイルの位置をその先頭に設定します。

形式

#include <stdio.h>

void rewind (FILE *file_ptr); (ISO POSIX-1)

int rewind (FILE *file_ptr); (HP C Extension)


引数

file_ptr

ファイル・ポインタ。

説明

rewind関数は, fseek (file_ptr, 0, SEEK_SET)と等価です。 rewind関数は,レコード・ファイルとストリーム・ファイルのどちらでも使用できます。

rewindの呼び出しに成功すると,ファイルのエラー・インディケータはクリアされます。

ANSI C 標準は, rewindを値を返さない関数として定義しています。このため, rewindの関数プロトタイプは, voidの戻り型で宣言されています。しかし, rewindは実行に失敗する可能性があり,以前のバージョンの HP C RTL は rewindintを返す関数として宣言していたため, rewindのコードは成功時には 0 を,失敗時には - 1 を返します。

fseekも参照してください。


rewinddir

指定されたディレクトリ・ストリームの位置を,ディレクトリの先頭に再設定します。

形式

#include <dirent.h>

void rewinddir (DIR *dir_pointer);


引数

dir_pointer

オープン・ディレクトリの dir構造体へのポインタ。

説明

rewinddir関数は,指定されたディレクトリ・ストリームの位置を,ディレクトリの先頭に再設定します。また, opendir関数を使用した場合と同じように,ディレクトリ・ストリームが対応するディレクトリの現在の状態を参照するようにします。 dir_pointer 引数がディレクトリ・ストリームを参照していない場合の効果は未定義です。

<dirent.h>ヘッダ・ファイルに定義されている DIR型は,ディレクトリ・ストリームを表します。ディレクトリ・ストリームとは,特定のディレクトリ内のすべてのディレクトリ・エントリの順序付きのシーケンスです。ディレクトリ・エントリはファイルを表します。

opendirも参照してください。


rindex

文字列の中の文字を検索します。

形式

#include <strings.h>

char *rindex (const char *s, int c);

関数バリアント rindex関数は,それぞれ 32 ビットと 64 ビットのポインタ・サイズで使用するための _rindex32_rindex64という名前のバリアントを持っています。ポインタ・サイズ固有の関数の使用方法については,『HP C ランタイム・ライブラリ・リファレンス・マニュアル(上巻)』第 1.10 節を参照してください。

引数

s

検索対象の文字列。

c

検索しようとしている文字。

説明

rindex関数は strchr関数と同じものであり,一部の UNIX インプリメンテーションとの互換性のために用意されています。

rint (Alpha only)

引数を,ユーザが指定した現在の IEEE 丸め向きに従って,整数値に丸めます。

形式

#include <math.h>

double rint (double x);

float rintf (float x,);

long double rintl (long double x);


引数

x

実数

説明

rint関数は, /ROUNDING_MODE コマンド行修飾子で指定された現在の IEEE 丸めモードの向きの, x に最も近い整数値を返します。

現在の丸めモードが負の無限大向きである場合, rintfloorと同じです。現在の丸めモードが正の無限大向きである場合, rintceilと同じです。

|x| = 無限大の場合, rintx を返します。


戻り値

n 現在の IEEE 丸めモードの向きの, x に最も近い整数値。
NaN x は NaN です。 errno は EDOM に設定されます。


rmdir

ディレクトリ・ファイルを削除します。

形式

#include <unistd.h>

int rmdir (const char *path);


引数

path

ディレクトリ・パス名。

説明

rmdir関数は, path 引数で名前が指定されたディレクトリ・ファイルを削除します。ディレクトリが削除されるのは,それが空である場合のみです。

説明

OpenVMS 形式の名前を使用する場合, path 引数は directory.dir の形式でなくてはなりません。

戻り値

0 成功を示します。
- 1 エラーが発生しました。 errno はエラーを示す値に設定されます。


sbrk

プログラムで使用されていない,値の最も小さい仮想アドレスを決定します。

形式

#include <unistd.h>

void *sbrk (long int incr);


引数

incr

現在のブレーク・アドレスに加えるバイト数。

説明

sbrk関数は,引数によって指定されたバイト数を現在のブレーク・アドレスに加え,以前のブレーク・アドレスを返します。

プログラムが実行されると,ブレーク・アドレスはプログラムおよびデータ・ストレージ領域によって定義される最も高い位置に設定されます。したがって, sbrkは,データ領域が増大するプログラムでしか必要とされません。

sbrk(0)は現在のブレーク・アドレスを返します。


戻り値

x 前のブレーク・アドレス。
( void *)( - 1) プログラムが要求しているメモリが多すぎることを示します。


制限事項

他の C ライブラリ・インプリメンテーションとは異なり, HP C RTL メモリ割り当て関数 ( mallocなど) は,プログラム・ヒープ・スペースの管理に brksbrkを使用しません。このため,OpenVMS システムでは, brkまたは sbrkを呼び出すとメモリ割り当てルーチンと干渉することがあります。 brkおよび sbrk関数は互換性のためにのみ用意されています。

scalb (Alpha only)

浮動小数点数の指数を返します。

形式

#include <math.h>

double scalb (double x, double n);

float scalbf (float x, float n);

long double scalbl (long double x, long double n);


引数

x

ゼロでない浮動小数点数。

n

整数。

説明

scalb関数は,整数 n に対して x*(2**n) を返します。

戻り値

x 実行に成功すると, x*(2** n) が返されます。
±HUGE_VAL オーバフローでは, scalb は <pm symbol>HUGE_VAL ( x のサインにより ) を返し, errno は ERANGE に認定されます。
0 アンダフローが発生しました。 errno は ERANGE に設定されます。
x x is ±Infinity.
NaN x または n は NaN です。 errno は EDOM に設定されます。


前へ 次へ 目次 索引