library home hp.com home products and services support and drivers solutions
cd-rom home
End of Jump to page title
HP OpenVMS Systems
Documentation

Jump to content


HP OpenVMS

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


前へ 次へ 目次 索引


例については, closedirの説明を参照してください。


戻り値

x readdir の実行が成功した場合には, struct dirent 型のオブジェクトへのポインタ。
0 readdir_r の実行が成功しました。
x エラーの場合には,エラー値 ( readdir_r のみ。)
NULL エラーが発生したか,ディレクトリ・ストリームの終端に達しました ( readdir_r のみ)。エラーが発生した場合, errno はその原因を示す値に設定されます。


readlink (Alpha, I64)

指定したシンボリック・リンクの内容を読み取って,ユーザの指定したバッファに格納します。

形式

#include <unistd.h>

ssize_t readlink (const char *restrict link_name, char *restrict user_buffer, size_t buffer_size);


引数

link_name

シンボリック・リンク・ファイルの名前を示すテキスト文字列へのポインタ。

user_buffer

ユーザ・バッファへのポインタ。

buffer_size

ユーザ・バッファのサイズ。

説明

readlink関数は,指定したシンボリック・リンク (link_name) の内容を読み取って,ユーザの指定した,サイズが buffer_size のバッファ (user_buffer) に格納します。

symlinkunlinkrealpathlchown,および lstatも参照してください。


戻り値

n 成功したことを示します。n は, user_buffer に格納されたバイト数です。
- 1 エラーが発生したことを示します。バッファは変更されておらず, errno に,エラーを示す次のいずれかの値が設定されます。

  • EACCES ---(1) 読み取り対象のシンボリック・リンクがあるディレクトリに,このユーザの読み取り許可が設定されていないか, (2) link_name のパス接頭辞に,検索許可のないコンポーネントが存在しています。

  • ENAMETOOLONG ---(1) link_name 引数の長さが PATH_MAX を超えているか, (2) パス名に,長さが NAME_MAX を超えるコンポーネントが存在しています。

  • close open ,または read から返された errno の値。


readv (Alpha, I64)

ファイルから読み込みを行います。

形式

#include <sys/uio.h>

ssize_t readv (int file_desc, const struct iovec *iov, int iovcnt);

ssize_t _readv64 (int file_desc, struct __iovec64 *iov, int iovcnt);

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

引数

file_desc

ファイル記述子。ファイル記述子は,現在読み込み用にオープンされているファイルを指していなければなりません。

iov

入力データが置かれる, iovec構造体の配列。

iovcnt

iov 配列のメンバで指定するバッファの数。

説明

readv関数は, readと同等ですが,入力データを,iov 配列のメンバ (iov[0], iov[1],...,iov[iovcnt-1]) で指定される iovcnt 個のバッファに置きます。 iovcnt 引数は,0 より大きく,IOV_MAX 以下であれば有効です。

iovecエントリは,データを置くメモリ領域のベース・アドレスと長さを指定します。 readv関数は,次に進む前に必ず領域を完全に埋めます。

正常に終了すると, readvは,ファイルの st_atime フィールドをアップデートするよう,マークします。

同期入出力オプションがサポートされている場合は,次の処理が行われます。

O_DSYNC ビットと O_RSYNC ビットが設定されている場合,ファイル記述子に対する読み込み入出力操作は,同期 I/O データ一貫性の完了により定義されているとおりに完了します。

O_SYNC ビットと O_RSYNC ビットが設定されている場合,ファイル記述子に対する読み込み I/O 操作は,同期 I/O ファイル一貫性の完了により定義されているとおりに完了します。

共用メモリ・オブジェクト・オプションがサポートされている場合は,次の処理が行われます。

file_desc が共用メモリ・オブジェクトを指している場合, read関数の結果は未定義です。

通常のファイルの場合,file_desc に対応する,オープン済みのファイル記述子に設定されている最大オフセットを越えるデータ転送は実行されません。


戻り値

n 読み込んだバイト数。
- 1 読み込みエラーを示します。この関数は,errno に以下のいずれかの値を設定します。

  • EAGAIN -- O_NONBLOCK フラグがファイル記述子に設定されていて,プロセスの遅延が発生します。

  • EBADF -- file_desc 引数が,読み取り用にオープンされている有効なファイル記述子ではありません。

  • EBADMSG -- control-normal モードが設定されている STREAM ファイルの場合に,読み込み待ちのメッセージに制御部が含まれていました。

  • EINTER -- シグナルを受信したために読み込み操作が終了し,データは転送されませんでした。

  • EINVAL -- file_desc で参照されている STREAM やマルチプレクサが,マルチプレクサからダウンストリームで直接的または間接的にリンクされていました。

    または

    iov 配列内の iov_len 値の合計が, ssize_t を超えていました。

  • EIO -- 物理 I/O エラーが発生しました。

    または

    制御端末から読み込みを行おうとしているバックグラウンド・プロセスのメンバとなっているプロセスで,プロセスが SIGTTIN シグナルを無視またはブロックしているか,プロセス・グループがオーファンドの状態でした。

  • EISDIR -- file_desc 引数がディレクトリを参照していますが,実装では, read pread ,または readv によるディレクトリの読み込みを許していません。代わりに, readdir 関数を使用してください。

  • EOVERFLOW -- ファイルが通常のファイルで, nbyte が 0 より大きい場合に,開始位置が,ファイルの終端よりも前で, file_desc に対応するオープン済みのファイル記述子で指定されている最大オフセット以上でした。

readv 関数は,次の場合に失敗 することがあります

  • EINVAL -- iovcnt 引数が 0 以下,または IOV_MAX より大きい値でした。


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


realpath

POSIX ルートからの絶対パス名を返します。

形式

#include <stdlib.h>

char realpath (const char *restrict file_name, char *restrict resolved_name);


引数

file_name

絶対パスを必要とするファイルについて,その名前を示すテキスト文字列へのポインタ。

resolved_name

生成した絶対パスへのポインタ (生成した絶対パスは,null で終了する文字列として格納)。

説明

realpath関数は, POSIX ルートからの絶対パス名を返します。生成したパス名は null で終了する文字列として, resolved_name が指すバッファ内に格納されます。格納されるパス名の最大長は,PATH_MAX バイトです。

realpath関数は, POSIX 準拠モードでだけ,つまり,DECC$POSIX_COMPLIANT_PATHNAMES の値が,許されている値のいずれかになっている場合にだけ,サポートされます。

symlinkunlinkreadlinklchown,および lstatも参照してください。


戻り値

x 成功したことを示します。 x は, resolved_name へのポインタです。
NULL エラーが発生したことを示します。ヌル・ポインタが返され, resolved_name が指しているバッファの内容は意味がありません。 errno に,エラーを示すよう次のいずれかの値が設定されます。

  • ENAMETOOLONG --- file_name 引数の長さが PATH_MAX を超えたか,パス名に長さが NAME_MAX を超えるコンポーネントがあります。

  • ENOENT --- file_name に既存のファイルを指定していないコンポーネントがあるか, file_name が空の文字列を指しています。

  • chdir または stat から返された errno の値。


[w]refresh

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

形式

#include <curses.h>

int refresh();

int wrefresh (WINDOW *win);


引数

win

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

説明

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

touchwinも参照してください。


戻り値

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


remainder (Alpha, I64)

浮動小数点の剰余 r = x - n*y (ただし,y はゼロでない数) を返します。

形式

#include <math.h>

double remainder (double x, double y);

float remainderf (float x, float y);

long double remainderl (long double x, long double y);


引数

x

実数値。

y

実数値。

説明

これらの関数は,浮動小数点の剰余 r = x - n*y (ただし,y はゼロでない数) を返します。値 n は,値 x/y に最も近い整数,つまり,n = rint(x/y) です。

|n - x/y| = 1/2の場合は,n の値として偶数が選択されます。

remainder関数の動作は,丸めモードに依存していません。

remainder関数の機能は, remquo関数の機能と同じです。


戻り値

r 成功したことを示します。 r は,浮動小数点の剰余 r = x - ny ( y はゼロでない数) です。
NaN x または y が NaN です。


remquo (Alpha, I64)

浮動小数点の剰余 r = x - n*y (ただし,y はゼロでない数) を返します。

形式

#include <math.h>

double remquo (double x, double y, int * quo);

float remquof (float x, float y, int * quo);

long double remquol (long double x, long double y, int * quo);


引数

x

実数値。

y

実数値。

quo

商の格納先となる int 型変数へのポインタ。

説明

remquo(),remquof(),および remquol() 関数から得られる剰余は,それぞれが,remainder(),remainderf(),および remainderl() 関数から得られる剰余と同じです。また,quo が指す変数には,その符号が x/y と同じで,しかも,その絶対値が,2n を法としたときに x/y の整数商 (の絶対値) と合同になるような値を格納します (ただし,n は実装で定義される,3 以上の整数)。

remquo関数の機能は, remainder関数の機能と同じです。


戻り値

r 成功したことを示します。 n は,浮動小数点の剰余 r = x - ny ( y はゼロでない数) です。
NaN x または y が NaN です。


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を使用した場合は,リンク自体が削除されるだけで,リンクが参照しているファイルは削除されません。

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

deleteも参照してください。


戻り値

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


前へ 次へ 目次 索引