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


前へ 次へ 目次 索引



towlower

ワイド文字コードの引数を小文字に変換します。引数が大文字でなければ,引数が変更なしに返されます。

形式

#include <wctype.h> (ISO C)

#include <wchar.h> (XPG4)

int towlower (wint_t wc);


引数

wc

現在のロケールで有効なワイド文字として表現可能な wint_t型のオブジェクト,または WEOF の値。それ以外の値での動作は未定義です。

説明

引数が大文字のワイド文字だった場合には,それに対応する小文字のワイド文字 ( ロケールの LC_CTYPE カテゴリの定義に従う ) が返されます ( 存在する場合 )。存在しない場合,関数は入力引数を変更なしに返します。

towupper

ワイド文字の引数を大文字に変換します。引数が小文字でなければ,引数が変更なしに返されます。

形式

#include <wctype.h> (ISO C)

#include <wchar.h> (XPG4)

int towupper (wint_t wc);


引数

wc

現在のロケールで有効なワイド文字として表現可能な wint_t型のオブジェクト,または WEOF の値。それ以外の値での動作は未定義です。

説明

引数が小文字のワイド文字だった場合には,それに対応する大文字のワイド文字 ( ロケールの LC_CTYPE カテゴリの定義に従う ) が返されます ( 存在する場合 )。存在しない場合,関数は入力引数を変更なしに返します。

trunc (Alpha only)

引数を整数値に切り捨てます。

形式

#include <math.h>

double trunc (double x);

float truncf (float x,);

long double truncl (long double x);


引数

x

浮動小数点数。

戻り値

n 引数を切り捨てて得られた整数値。


truncate

ファイルの長さを,指定されたバイト数に変更します。

形式

#include <unistd.h>

int truncate (const char *path, off_t length);


引数

path

切り捨てるファイルの名前。この引数は,呼び出し元プロセスが書き込み許可を持っている通常のファイルを指定するパス名をポイントしていなくてはなりません。

length

ファイルの新しい長さ (バイト数)。 lengthoff_t型は 64 ビット整数または 32 ビット整数です。64 ビット・インタフェースでは 2 GB よりも大きいファイル・サイズを扱うことができ,コンパイル時に次のように _LARGEFILE 機能テスト・マクロを定義することで選択できます。


CC/DEFINE=_LARGEFILE 


説明

truncate関数は,ファイルの長さを, length 引数で指定されたバイト数に変更します。

新しい長さが以前の長さよりも小さかった場合,関数は指定されたファイルから length バイトよりも後のデータをすべて削除します。新しいファイルの終端と以前のファイルの終端の間のすべてのファイル・データは破棄されます。

ストリーム・ファイルでは,新しい長さが以前の長さよりも大きかった場合,以前のファイルの終端と新しいファイルの終端の間に,すべてゼロから構成される新しいファイル・データが追加されます ( レコード・ファイルでは,この方法でファイルを拡張することはできません )。


戻り値

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


ttyname, ttyname_r

ターミナルのパス名を見つけます。

形式

#include <unixio.h> (Compatability)

char *ttyname (void); (Compatability)

#include <unistd.h> (OpenVMS V7.3-2 and higher)

char *ttyname (int filedes); (OpenVMS V7.3-2 and higher)

int ttyname_r (int filedes, char *name, size_t namesize); (OpenVMS V7.3-2 and higher) , (Alpha only)


引数

filedes

オープン・ファイルの記述子。

name

ターミナル名が格納されるバッファへのポインタ。

namesize

name 引数が指すバッファの長さ。

説明

引数のない ttyname関数は,旧版との互換性のためにのみ用意されています。この旧式の実装では,デフォルトの入力デバイス ( stdin) であるファイル記述子 0 に対応するターミナル・デバイスの, null で終了する名前へのポインタを返します。 SYS$INPUT が TTY デバイスでない場合,値 0 が返されます。

ttyname_r関数と, filedes 引数をとる ttynameの実装は, UNIX 標準に準拠しています。また,OpenVMS バージョン 7.3-2 およびそれ以降でのみ利用できます。

標準に準拠している ttyname関数は,ファイル記述子 filedes に対応するターミナルの, null で終了するパス名からなる文字列へのポインタを返します。戻り値は,呼び出しのたびに内容が上書きされる,静的データを指しています。 ttynameインタフェースは,リエントラントとは限りません。

ttyname_r関数は,ファイル記述子 filedes に対応するターミナルの, null で終了するパス名を格納する領域へのポインタを, name という名前の文字配列として受け取ります。この配列の長さは,namesize 文字で,名前と末尾の null 文字用の領域が必要です。ターミナル名の最大長は,TTY_NAME_MAX です。

成功すると, ttynameは文字列へのポインタを返します。失敗すると,NULL ポインタが返され,エラーを示す値が errnoに設定されます。

成功すると, ttyname_rは, name が指すバッファに null で終了する文字列としてターミナル名を格納し,0 を返します。失敗すると,エラーを示すエラー番号が返されます。


戻り値

x 成功して終了すると, ttyname は, null で終了する文字列へのポインタを返します。
NULL 失敗すると, ttyname は NULL ポインタを返し,失敗を示す値を errno に設定します。

  • EBADF -- fildes 引数が,正しいファイル記述子ではありません。

  • ENOTTY -- fildes 引数が,ターミナル・デバイスを指していません。

0 成功して終了すると, ttyname_r は 0 を返します。
n 失敗すると, ttyname_r は失敗を示す値を errno に設定し,同じ errno コードを返します。

  • EBADF -- fildes 引数が,正しいファイル記述子ではありません。

  • ENOTTY -- fildes 引数が,TTY デバイスを指していません。

  • ERANGE -- namesize の値が,返却する文字列 (末尾の null 文字を含む) の長さよりも小さくなっています。

0 旧式の ttyname で, SYS$INPUT が TTY デバイスではないことを示します。


tzset

タイム・ゾーン変換の設定とアクセスを行います。

形式

#include <time.h>

void tzset (void);

extern char *tzname[];

extern long int timezone;

extern int daylight;


説明

tzset関数は, ctimelocaltimemktimestrftime,および wcsftime関数が使用する時刻変換情報を初期化します。

tzset関数は,以下の外部変数を設定します。

環境変数 TZは, tzsetが時刻変換情報をどのように初期化するかを指定します。

表 REF-11 タイム・ゾーン初期化規則
TZ の形式 意味
: UTC が使用される。
: pathname コロンの後の文字列は,時刻変換情報を読み込む tzfile 形式のファイルのパス名を指定する。スラッシュ (/) で始まるパス名は絶対パス名を表す。それ以外の場合,パス名は SYS$TZDIR が指定するシステム時刻変換情報ディレクトリを基準とする。このディレクトリはデフォルトでは SYS$COMMON:[SYS$ZONEINFO.SYSTEM] である。
stdoffset[ dst[ offset]
[,rule]]
この値は,まず時刻変換情報を読み込むファイルのパス名として使用される (: pathname 形式と同じ )。

そのファイルを読み込めなかった場合,この値は次のように時刻変換情報の直接の指定として解釈される。

  stddst---タイム・ゾーンを指定する 3 つ以上の文字:

  • std---標準タイム・ゾーン。必須。

  • dst---サマータイム・ゾーン。オプション。 dst が省略された場合,サマータイムは適用されない。

大文字と小文字は明示的に許容されている。以下のものを除く任意の文字が使用できる。

  • 数字

  • 先頭のコロン (:)

  • コンマ (,)

  • マイナス ( - )

  • プラス (+)

  • ASCII null 文字

  offset---UTC に合わせるためにローカル時刻に追加される値。オフセットは次の形式を持つ。
hh[:
mm[:
ss]]

この形式の各項目は,以下の意味を持つ。

  • hh (時) は,0〜24 の範囲の 1 つまたは 2 つの数字。

  • mm (分) は,0〜59 の範囲の値 (オプション)。

  • ss (秒) は,0〜59 の範囲の値 (オプション)。

  std の後のオフセットは必須である。 dst の後にオフセットがなかった場合には,標準時よりも 1 時間早いサマータイムが仮定される。 1 つまたは複数の数字を使用できる。値はつねに 10 進数として解釈される。

タイム・ゾーンの前にマイナス記号 ( - ) がある場合,そのタイム・ゾーンはグリニッチの東にある。そうでなければグリニッチの西にある。これはプラス記号 (+) で示すこともできる。

  rule---サマータイムにいつ切り替わり,いつ終了するのかを示す。規則は次の形式を持つ。
start[/
time],
end[/
time]

各項目は以下の意味を持つ。

  • start は,標準時からサマータイムに切り替わる日付を示す。

  • end は,サマータイムから標準時へと戻る日付を示す。

  startend が省略された場合のデフォルトは,米国のサマータイムの開始日と終了日である。 startend の形式は,次のいずれかでなくてはならない。

  • Jn---ユリウス日 n (1 < n < 365)。うるう日は算入されない。つまり,うるう年を含むすべての年において, 2 月 28 日は 59 日目,3 月 1 日は 60 日目である。 2 月 29 日を明示的に参照することはできない。

  • n---ゼロ・ベースのユリウス日 (0 < n < 365)。うるう日は算入され,2 月 29 日を参照することができる。

  • Mm.n.d--- m 月の n 番目の d 曜日。
    0 < n < 5
    0 < d < 6
    1 < m < 12

    n が 5 である場合には, m 月の最後の d 曜日を示す。0 番目の曜日は日曜日である。

  time---現在の時刻で,サマータイムへの切り替えまたは終了が起こる時刻。 time 引数は,先頭のマイナス ( - ) またはプラス (+) 記号を使用できないという点を除けば, offset と同じ形式を持つ。 time が指定されなかった場合のデフォルトは 02:00:00 である。

TZ 指定に規則が含まれていない場合には,システム時刻変換情報ディレクトリの SYS$POSIXRULES システム論理名によって定義される tzfile 形式のファイルで指定された規則が使用される。標準時とサマータイムの UTC からのオフセットは, TZ 内のオフセット値で指定された値に置き換えられる。

TZ tzfile 形式のファイルを指定しておらず,直接指定としても解釈できない場合には,UTC が使用される。

注意

OpenVMS バージョン 7.0 で導入された UTC ベースの時刻関数は,非 UTC ベースの時刻関数と比べると性能が低くなっていました。

OpenVMS バージョン 7.1 では,性能を改善するために,タイム・ゾーン・ファイル用のキャッシュが追加されました。キャッシュのサイズは論理名 DECC$TZ_CACHE_SIZE によって決定されます。ほとんどの国が時刻を年に 2 回変更することに対応して,デフォルトのキャッシュ・サイズはタイム・ゾーン・ファイルを 2 つ保持できるだけの大きさになっています。

ctimelocaltimemktimestrftime,および wcsftimeも参照してください。


サンプルの TZ 指定


EST5EDT4,M4.1.0,M10.5.0 

このサンプルの TZ 指定は, 1987 年に米国の東部タイム・ゾーン用に定義された規則を記述しています。

どちらのケースでも time は指定されていないため,変更はデフォルトの時刻である 2:00 A.M.に行われます。開始日と終了日はデフォルト値なので指定する必要がありません。

注意

1 HP C RTL は,タイム・ゾーン変換規則をアクセスと修正が簡単に行えるファイルに格納する,パブリック・ドメインのタイム・ゾーン処理パッケージを使用しています。これらのファイルは, SYS$COMMON:[SYS$ZONEINFO.SYSTEM.SOURCES] ディレクトリに置かれています。 <tzfile.h> ヘッダ・ファイルによって記述されている特殊な形式に変換します。変換後のファイルは, SYS$TZDIR システム論理名がポイントする SYS$COMMON:[SYS$ZONEINFO.SYSTEM] をルート・ディレクトリとして作成されます。この形式は,タイム・ゾーン情報を処理する C ライブラリ関数から読み込むことができます。たとえば,米国東部では, SYS$LOCALTIME は SYS$COMMON:[SYS$ZONEINFO.SYSTEM.US]EASTERN に定義されます。


前へ 次へ 目次 索引