HP OpenVMS Systems Documentation |
| 前へ | 次へ | 目次 | 索引 |
既存のファイルに新しい名前を与えます。
#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 に設定されます。
ディレクトリ・ファイルを削除します。
#include <unistd.h>int rmdir (const char *path);
path
ディレクトリ・パス名。
rmdir関数は, path 引数で名前が指定されたディレクトリ・ファイルを削除します。ディレクトリが削除されるのは,それが空である場合のみです。指定した path がシンボリック・リンクであると, rmdirが失敗して, errnoに ENOTDIR が設定されます。
OpenVMS 形式の名前を使用する場合, path 引数は directory.dir の形式でなくてはなりません。
0 成功を示します。 - 1 エラーが発生しました。 errno はエラーを示す値に設定されます。
プログラムで使用されていない,値の最も小さい仮想アドレスを決定します。
#include <unistd.h>void *sbrk (long int incr);
incr
現在のブレーク・アドレスに加えるバイト数。
sbrk関数は,引数によって指定されたバイト数を現在のブレーク・アドレスに加え,以前のブレーク・アドレスを返します。プログラムが実行されると,ブレーク・アドレスはプログラムおよびデータ・ストレージ領域によって定義される最も高い位置に設定されます。したがって, sbrkは,データ領域が増大するプログラムでしか必要とされません。
sbrk(0)は現在のブレーク・アドレスを返します。
x 前のブレーク・アドレス。 ( void *)( - 1) プログラムが要求しているメモリが多すぎることを示します。
他の C ライブラリの実装とは異なり, HP C RTL メモリ割り当て関数 ( mallocなど) は,プログラム・ヒープ・スペースの管理に brkや sbrkを使用しません。このため,OpenVMS システムでは, brkまたは sbrkを呼び出すとメモリ割り当てルーチンと干渉することがあります。 brkおよび sbrk関数は互換性のためにのみ用意されています。
浮動小数点数の指数を返します。
#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 に設定されます。
標準入力 ( stdin) からの書式付き入力を実行し,書式指定に従って解釈します。書式指定子については『HP C ランタイム・ライブラリ・リファレンス・マニュアル(上巻)』第 2 章を参照してください。
#include <stdio.h>int scanf (const char *format_spec, ...);
format_spec
書式指定を含んでいる文字列へのポインタ。書式指定は,入力からそのまま取得され,指定された入力ソースに変換されてメモリに格納される文字から構成されています。変換文字のリストについては,『HP C ランタイム・ライブラリ・リファレンス・マニュアル(上巻)』第 2 章を参照してください。...
結果として得られる型が,書式指定で与えられた変換指定に対応するオブジェクトへのポインタであるオプションの式。変換指定が与えられなかった場合,これらの入力ポインタは省略することができます。そうでない場合は,関数呼び出しは変換指定の数以上の入力ポインタを持っていなくてはならず,変換指定は入力ポインタの型と一致していなくてはなりません。
変換指定は,左から右の順序で入力ソースと照合されます。余分な入力ポインタがある場合には,無視されます。
x 照合に成功し,代入が行われた入力項目の数。 EOF 変換に成功する前に読み込みエラーが発生したことを示します。関数は errno を設定します。この関数が設定する errno 値のリストについては, fscanf を参照してください。
ウィンドウ上で scanfを実行します。 scanw関数は stdscrウィンドウに作用します。
#include <curses.h>int scanw (char *format_spec, ...);
int wscanw (WINDOW *win, char *format_spec, ...);
win
ウィンドウへのポインタ。format_spec
書式指定文字列へのポインタ。...
結果として得られる型が,書式指定で与えられた変換指定に対応するオブジェクトへのポインタであるオプションの式。変換指定が与えられなかった場合,これらの入力ポインタは省略することができます。そうでない場合は,関数呼び出しは変換指定の数以上の入力ポインタを持っていなくてはならず,変換指定は入力ポインタの型と一致していなくてはなりません。
変換指定は,左から右の順序で入力ソースと照合されます。余分な入力ポインタがある場合には,無視されます。
書式指定 (format_spec) とその他の引数は, scanf関数で使用されるものと同じです。scanwおよび wscanw関数は,ターミナル・スクリーンからテキスト行を受け付け,書式を設定し,返します。詳細については, scrollokおよび scanf関数を参照してください。
OK 成功を示します。 ERR 関数がスクリーンに不正なスクロールを引き起こすか,スキャンが失敗したことを示します。
ウィンドウ上のすべての行を 1 行上に移動します。一番上の行はウィンドウからスクロールして消え,一番下の行は空白になります。
#include <curses.h>int scroll (WINDOW *win);
win
ウィンドウへのポインタ。
OK 成功を示します。 ERR エラーを示します。
指定されたウィンドウのスクロール・フラグを設定します。
#include <curses.h>scrollok (WINDOW *win, bool boolf);
win
ウィンドウへのポインタ。boolf
論理型の TRUE または FALSE 値。 boolf が FALSE の場合,スクロールは許可されません。これはデフォルトの設定です。bool 型は, <curses.h>ヘッダ・ファイルに次のように定義されています。
#define bool int
48 ビットの乱数ジェネレータを初期化します。
#include <stdlib.h>unsigned short *seed48 (unsigned short seed_16v[3]);
seed_16v
48 ビットのシード値を構成する, 3 つの unsigned short intの配列。
seed48関数は乱数ジェネレータを初期化します。この関数は,プログラム内で drand48, lrand48,または mrand48関数を呼び出す前に使用することができます ( これは推奨はされませんが, drand48, lrand48,または mrand48関数が,初期化関数を呼び出すことなく呼び出された場合には,定数のデフォルト・イニシアライザ値が自動的に提供されます)。seed48関数は,次の線形合同式に従って, 48 ビットの整数値 Xi のシーケンスを生成します。
Xn+1 = (aXn+c)mod m n > 0
引数 m は 248 に等しいので, 48 ビット整数算術演算が実行されます。 lcong48関数を呼び出さなかった場合,乗数値 a と加算される値 c は次のようになります。
a = 5DEECE66D16 = 2736731631558 c = B16 = 138
初期化関数 seed48は,次の処理を行います。
- Xi の値を, seed_16v がポイントする配列で指定された 48 ビット値に設定する。
- seed48のみが使用する, Xi の前の値を含んでいる 48 ビットの内部バッファへのポインタを返す。
返されたポインタを使用して,任意の時点で擬似乱数シーケンスを再開することができます。このポインタを使って,前の Xi 値を一時的配列にコピーしてください。元のシーケンスが中断した場所から再開するには,この配列へのポインタを指定して seed48を呼び出します。
drand48, lrand48,および mrand48も参照してください。
x 48 ビットの内部バッファへのポインタ。
| 前へ | 次へ | 目次 | 索引 |