HP OpenVMS Systems Documentation |
| 前へ | 次へ | 目次 | 索引 |
ディレクトリ・ファイルを削除します。
#include <unistd.h>int rmdir (const char *path);
path
ディレクトリ・パス名。
rmdir関数は, path 引数で名前が指定されたディレクトリ・ファイルを削除します。ディレクトリが削除されるのは,それが空である場合のみです。
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 ビットの内部バッファへのポインタ。
ディレクトリ・ストリームの位置を設定します。
#include <dirent.h>void seekdir (DIR *dir_pointer, long int location);
dir_pointer
オープン・ディレクトリの dir構造体へのポインタ。location
ディレクトリの先頭を基準としたエントリの番号。
seekdir関数は, dir_pointer によって指定されたディレクトリ・ストリーム上の次の readdir操作の位置を, location によって指定された位置に設定します。 location の値は,以前の telldir の呼び出しから返されたものです。location の値が以前の telldir関数の呼び出しから返されたものでない場合,またはこのディレクトリ・ストリームに対する rewinddir関数の呼び出しが途中で行われていた場合の効果は定められていません。
<dirent.h>ヘッダ・ファイルに定義されている DIR型は,ディレクトリ・ストリームを表します。ディレクトリ・ストリームとは,特定のディレクトリ内のすべてのディレクトリ・エントリの順序付きのシーケンスです。ディレクトリ・エントリはファイルを表します。 readdir関数の操作とは非同期的に,ディレクトリのファイルの削除や追加を行うことができます。
readdir, rewinddir,および telldirを参照してください。
ウィンドウ内でビデオ表示属性 attr を有効にします。 setattr関数は stdscrウィンドウに作用します。
#include <curses.h>int setattr (int attr);
int wsetattr (WINDOW *win, int attr);
win
ウィンドウへのポインタ。attr
点滅,ボールド,反転ビデオ,および下線のビデオ表示属性。それぞれ定義済み定数 _BLINK,_BOLD,_REVERSE,および _UNDERLINE によって表現されます。次のようにビット論理和演算子 (|) で区切ることで,複数の属性を設定することができます。
setattr(_BLINK | _UNDERLINE);
setattrおよび wsetattr関数は HP C for OpenVMS システムに固有のもので,移植性はありません。
OK 成功を示します。 ERR エラーを示します。
入力ファイルまたは出力ファイルに新しいバッファを関連付けます。バッファリングの動作を変更することもあります。
#include <stdio.h>void setbuf (FILE *file_ptr, char *buffer);
file_ptr
ファイル・ポインタ。buffer
文字配列へのポインタ,または NULL ポインタ。
setbuf関数は,指定されたファイルがオープンされた後,ただし I/O 操作が実行される前に使用することができます。buffer が NULL ポインタである場合,この呼び出しは,同じ file_ptr,NULL の buffer ポインタ, _IONBF のバッファリング・タイプ (バッファリングなし),およびバッファ・サイズ 0 を指定する setvbuf呼び出しと等価です。
buffer が NULL ポインタでない場合,この呼び出しは,同じ file_ptr,同じ buffer ポインタ, _IOFBF のバッファリング・タイプ,および値 BUFSIZ ( <stdio.h>に定義) で指定されるバッファ・サイズを指定する setvbuf呼び出しと等価です。したがって, setbufの呼び出しで使用する buffer 引数を割り当てるときには BUFSIZ を使用するようにします。次に例を示します。
#include <stdio.h> . . . char my_buf[BUFSIZ]; . . . setbuf(stdout, my_buf); . . .
ユーザ・プログラムは,ストリームに対して I/O が実行された後には, buffer の内容に依存してはなりません。 HP C RTL は,どの I/O 操作についても, buffer を使用する場合と使用しない場合があります。
もともと setbuf関数は,古いバージョンの UNIX のシステム・デフォルト・バッファの代わりに,プログラマが大きなバッファを割り当てられるようにすることを目的としていました。今日の C のインプリメンテーションでは,デフォルト・バッファ・サイズが大きいため,この関数はほとんどのケースでは不要です。 setbuf関数は,ANSI C 標準では,古いプログラムとの互換性のために残されています。新規のプログラムでは,代わりに setvbufを使用するようにしてください。この関数では,プログラマはコンパイル時ではなく実行時にバッファ・サイズをバインドすることができますし,テスト可能な結果値が返されます。
| 前へ | 次へ | 目次 | 索引 |