HP OpenVMS Systems Documentation |
| 前へ | 次へ | 目次 | 索引 |
ファイルから読み込みを行います。
#include <sys/uio.h>関数バリアント readv関数は,それぞれ 32 ビットと 64 ビットのポインタ・サイズで使用するための, _readv32と _readv64という名前のバリアントを持っています。ポインタ・サイズ固有の関数の使用方法については,『HP C ランタイム・ライブラリ・リファレンス・マニュアル(上巻)』第 1.10 節を参照してください。ssize_t readv (int file_desc, const struct iovec *iov, int iovcnt);
ssize_t _readv64 (int file_desc, struct __iovec64 *iov, int iovcnt);
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 より大きい値でした。
第 1 引数がポイントしている領域のサイズを,第 2 引数で指定されたバイト数に変更します。これらの関数は AST リエントラントです。
#include <stdlib.h>関数バリアント realloc関数は,それぞれ 32 ビットと 64 ビットのポインタ・サイズで使用するための _realloc32と _realloc64という名前のバリアントを持っています。ポインタ・サイズ固有の関数の使用方法については,『HP C ランタイム・ライブラリ・リファレンス・マニュアル(上巻)』第 1.10 節を参照してください。void *realloc (void *ptr, size_t size);
ptr
割り当て済み領域をポイントするポインタか,あるいは NULL。size
割り当て済み領域の新しいサイズ。
ptr が NULL ポインタである場合, realloc関数の動作は malloc関数と同じです。領域の内容は,古いサイズと新しいサイズのうちの小さい方までは変更されません。 ANSI C 標準は次のように述べています。「新しいサイズが古いサイズよりも大きい場合,新しく割り当てられるメモリ部分の値は不定である」。古いインプリメンテーションとの互換性のために, HP C は新しく割り当てられたメモリを 0 に初期化します。
効率を高めるために,以前の実際の割り当ては,要求されたサイズよりも大きいサイズで行われた可能性があります。割り当てが mallocで行われた場合,前に要求された割り当てと実際の割り当ての間のメモリ部分の値は不定です。割り当てが callocで行われた場合,そのメモリは 0 に初期化されています。アプリケーションが, reallocがメモリを 0 に初期化することに依存している場合には,最初の割り当てに mallocではなく callocを使用するようにしてください。
free, cfree, calloc,および mallocも参照してください。
x 領域のアドレス。クォドワード (Alpha only) またはオクタワード (I64 only) にアラインされています。アドレスが返されるのは,十分なスペースを再割り当てするために,エリアを新しいアドレスに移動しなくてはならないことがあるためです。エリアが移動される場合,以前に占有されていたスペースは解放されます。 NULL スペースの再割り当てを行えないことを示します (十分なスペースがなかった場合など)。
ターミナル・スクリーンに指定されたウィンドウを再ペイントします。 refresh関数は stdscrウィンドウに作用します。
#include <curses.h>int refresh();
int wrefresh (WINDOW *win);
win
ウィンドウへのポインタ。
このプロセスの結果として,ウィンドウの中の,サブウィンドウや他のウィンドウに占有されていない部分が,ターミナル・スクリーンに表示されます。占有されているウィンドウ全体をターミナル・スクリーンに表示するには, refreshまたは wrefresh関数の代わりに touchwin関数を呼び出します。touchwinも参照してください。
OK 成功を示します。 ERR エラーを示します。
ファイルを削除します。
#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 成功を示します。 ゼロ以外の値 失敗を示します。
既存のファイルに新しい名前を与えます。
#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 機能論理名の設定に影響されます。
- DECC$RENAME_NO_INHERIT は,ファイルの新しい名前が古い名前から何か (たとえば,ファイル・タイプ) を継承するか,または完全に指定しなければならないかに影響します。
- DECC$RENAME_ALLOW_DIR を使用すると,あいまいなファイル指定が 2 番目の引数の論理名として渡された場合にディレクトリ指定への変換を許すという以前の OpenVMS 動作にするか,ファイルからディレクトリへの名前変更を許さない UNIX 準拠の動作にするかを選択できます。
詳細は,『HP C ランタイム・ライブラリ・リファレンス・マニュアル(上巻)』第 1.6 節の DECC$RENAME_NO_INHERIT と DECC$RENAME_ALLOW_DIR の説明を参照してください。
0 成功を示します。 ゼロ以外の値 失敗を示します。
ファイルの位置をその先頭に設定します。
#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 は rewindを intを返す関数として宣言していたため, rewindのコードは成功時には 0 を,失敗時には - 1 を返します。
fseekも参照してください。
指定されたディレクトリ・ストリームの位置を,ディレクトリの先頭に再設定します。
#include <dirent.h>void rewinddir (DIR *dir_pointer);
dir_pointer
オープン・ディレクトリの dir構造体へのポインタ。
rewinddir関数は,指定されたディレクトリ・ストリームの位置を,ディレクトリの先頭に再設定します。また, opendir関数を使用した場合と同じように,ディレクトリ・ストリームが対応するディレクトリの現在の状態を参照するようにします。 dir_pointer 引数がディレクトリ・ストリームを参照していない場合の効果は未定義です。<dirent.h>ヘッダ・ファイルに定義されている DIR型は,ディレクトリ・ストリームを表します。ディレクトリ・ストリームとは,特定のディレクトリ内のすべてのディレクトリ・エントリの順序付きのシーケンスです。ディレクトリ・エントリはファイルを表します。
opendirも参照してください。
文字列の中の文字を検索します。
#include <strings.h>関数バリアント rindex関数は,それぞれ 32 ビットと 64 ビットのポインタ・サイズで使用するための _rindex32と _rindex64という名前のバリアントを持っています。ポインタ・サイズ固有の関数の使用方法については,『HP C ランタイム・ライブラリ・リファレンス・マニュアル(上巻)』第 1.10 節を参照してください。char *rindex (const char *s, int c);
s
検索対象の文字列。c
検索しようとしている文字。
rindex関数は strchr関数と同じものであり,一部の UNIX インプリメンテーションとの互換性のために用意されています。
引数を,ユーザが指定した現在の IEEE 丸め向きに従って,整数値に丸めます。
#include <math.h>double rint (double x);
float rintf (float x,);
long double rintl (long double x);
x
実数
rint関数は, /ROUNDING_MODE コマンド・ライン修飾子で指定された現在の IEEE 丸めモードの向きの, x に最も近い整数値を返します。現在の丸めモードが負の無限大向きである場合, rintは floorと同じです。現在の丸めモードが正の無限大向きである場合, rintは ceilと同じです。
|x| = 無限大の場合, rintは x を返します。
n 現在の IEEE 丸めモードの向きの, x に最も近い整数値。 NaN x は NaN です。 errno は EDOM に設定されます。
| 前へ | 次へ | 目次 | 索引 |