日本-日本語

製品  >  ソフトウェア  >  OpenVMS  >  マニュアル >  V8.3ライブラリ

OpenVMS マニュアル


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


前へ 次へ 目次 索引





mbstowcs

マルチバイト文字のシーケンスを,対応するワイド文字コードのシーケンスに変換します。



形式

#include <stdlib.h>

size_t mbstowcs (wchar_t *pwcs, const char *s, size_t n);




引数



pwcs

結果として得られるワイド文字コードのシーケンスが格納される配列へのポインタ。

s

マルチバイト文字の配列へのポインタ。

n

pwcs がポイントする配列に格納できるワイド文字コードの数の最大値。



説明

mbstowcs関数は, s がポイントする配列内のマルチバイト文字のシーケンスを,コード n 個を上限としてワイド文字コードのシーケンスに変換し, pwcs がポイントする配列に格納します

この関数は,プログラムのカレント・ロケールの LC_CTYPE カテゴリの影響を受けます。コピーが互いにオーバラップするオブジェクト間で行われた場合の動作は未定義です。




戻り値

x 変更される,または必要とされる配列要素の数。末尾のゼロ・コードは含みません。返される値が n の場合には,配列の末尾にはゼロは格納されません。 pwcs が NULL ポインタならば, mbstowcs はワイド文字配列に必要とされる要素の数を返します。
( size_t )-1    エラーが発生したことを示します。関数は errno を,無効な文字が検出されたことを示す EILSEQ に設定します。




mbtowc

マルチバイト文字を,それと等価なワイド文字に変換します。



形式

#include <stdlib.h>

int mbtowc (wchar_t *pwc, const char *s, size_t n);




引数



pwc

結果として得られるワイド文字コードへのポインタ。

s

マルチバイト文字へのポインタ。

n

次のマルチバイト文字を構成するバイトの数の最大値。



説明

文字が n バイト以下である場合, mbtowc関数は s がポイントするマルチバイト文字を,それと等価なワイド文字に変換します。文字が無効であるか,n バイトよりも大きい場合,関数はエラーを示す - 1 を返します。

pwc が NULL ポインタで,s が null ポインタでない場合,関数は (n の値にかかわらず) s がポイントするマルチバイト文字を構成するバイト数を判定します。

この関数は,プログラムのカレント・ロケールの LC_CTYPE カテゴリの影響を受けます。




戻り値

x s がポイントする有効な文字を構成するバイト数。
0 s は NULL ポインタであるか,null バイトへのポインタです。
-1    エラーを示します。関数は errno を,無効な文字が検出されたことを示す EILSEQ に設定します。




mbsinit

mbstate_tオブジェクトが初期変換状態を記述しているかどうかを判定します。



形式

#include <wchar.h>

int mbsinit (const mbstate_t *ps);




引数



ps

mbstate_tオブジェクトへのポインタ。 mbstate_tは,状態依存のコードセットのための変換状態を保持する目的に使われる不透明のデータ型です。



説明

ps が NULL ポインタでない場合, mbsinit関数は, ps がポイントする mbstate_tオブジェクトが初期変換状態を記述しているかどうかを判定します。ゼロの mbstate_tオブジェクトは,つねに初期変換状態を記述しています。



戻り値

ゼロ以外 ps 引数が NULL ポインタであるか, ps がポイントする mbstate_t オブジェクトが初期変換状態を記述しています。
0 ps がポイントする mbstate_t オブジェクトは初期変換状態を記述していません。




mbsrtowcs

マルチバイト文字のシーケンスを,対応するワイド文字コードのシーケンスに変換します。



形式

#include <wchar.h>

size_t mbsrtowcs (wchar_t *dst, const char **src, size_t len, mbstate_t *ps);

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


引数



dst

結果として得られるワイド文字コードのシーケンスが格納されるデスティネーション配列へのポインタ。

src

変換するマルチバイト文字のシーケンスを含んだ配列へのポインタのアドレス。

len

dst がポイントする配列に格納できるワイド文字コードの数の最大値。

ps

mbstate_tオブジェクトへのポインタ。 NULL ポインタが指定された場合,関数は内部の mbstate_tオブジェクトを使用します。 mbstate_tは,状態依存のコードセットのための変換状態を保持する目的に使われる不透明のデータ型です。



説明

mbsrtowcs関数は, ps がポイントするオブジェクトが記述している変換状態から開始して, src が間接的にポイントしている配列に含まれているマルチバイト文字のシーケンスを,対応するワイド文字のシーケンスに変換します。

dst が NULL ポインタでなければ,変換後の文字は dst がポイントする配列に格納されます。変換は末尾の null 文字まで行われ,この null 文字も格納されます。

以下のいずれかの理由が生じた場合,変換は途中で停止します。

  • 有効なマルチバイト文字を構成しないバイトのシーケンスを検出した。

  • dst が NULL ポインタでない場合, dst がポイントする配列に len 個のコードが格納された。

dst が NULL ポインタでない場合, src がポイントするポインタ・オブジェクトには, NULL ポインタが代入されるか ( 末尾の null ワイド文字に達したために変換が停止した場合 ),または最後に変換されたマルチバイト文字 ( 存在する場合 ) の直後のアドレスが代入されます。末尾の null ワイド文字に達したために変換が停止した場合,結果として得られる状態は初期変換状態です。




戻り値

n 変換に成功したマルチバイト文字の数。末尾の null は ( 存在する場合でも ) 含みません。
-1    エラーを示します。有効なマルチバイト文字を構成しないバイトのシーケンスが現れました。 errno は EILSEQ に設定されます。変換状態は未定義です。




memccpy

メモリ領域内の文字列の間で,文字を順次コピーします。



形式

#include <string.h>

void *memccpy (void *dest, void *source, int c, size_t n);

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


引数



dest

デスティネーション文字列の位置へのポインタ。

source

ソース文字列の位置へのポインタ。

c

検索したい文字。

n

コピーしたい文字数。



説明

memccpy関数は,メモリ領域内の文字列に作用します。メモリ領域とは,カウントによって制限され,null 文字で終了しない,連続した文字のグループです。この関数は,コピー先のメモリ領域でのオーバフローをチェックしません。 memccpy関数は <string.h>ヘッダ・ファイルに定義されています。

memccpy関数は,source がポイントする位置から,以下のいずれかが起こるまで, dest がポイントする位置へと文字を順次コピーします。

  • c で指定された文字 ( unsigned charに変換) のコピーが終了した。

  • nで指定された数の文字のコピーが終了した。




戻り値

x dest がポイントする文字列の中の, c で指定される文字の後の文字へのポインタ。
NULL エラーを示します。文字列の中で n 個の文字をスキャンしても,文字 c は発見されませんでした。




memchr

指定されたオブジェクトの最初の size バイト内で,指定されたバイトの最初のオカレンスを発見します。



形式

#include <string.h>

void *memchr (const void *s1, int c, size_t size);

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


引数



s1

検索するオブジェクトへのポインタ。

c

検索するバイト値。

size

検索するオブジェクトの長さ。

size がゼロの場合, memchrは NULL を返します。




説明

strchrとは異なり, memchr関数は null 文字が現れても停止しません。



戻り値

ポインタ バイトの最初のオカレンスへのポインタ。
NULL 指定されたバイトがオブジェクト内に含まれていなかったことを示します。




memcmp

2 つのオブジェクトをバイト単位で比較します。比較操作は,各オブジェクトの最初のバイトから開始されます。



形式

#include <string.h>

int memcmp (const void *s1, const void *s2, size_t size);




引数



s1

第 1 のオブジェクトへのポインタ。

s2

第 2 のオブジェクトへのポインタ。

size

比較するオブジェクトの長さ。

size がゼロの場合,2 つのオブジェクトは等しいものと見なされます。




説明

memcmp関数はネイティブなバイト比較を使用します。返される値の符号は,比較されるオブジェクトの中の,最初の異なるバイトの値を比較したときに得られる符号によって決定されます。 strcmp関数とは異なり, memcmp関数は null 文字が現れても停止しません。



戻り値

x 負の整数,0,または正の整数。それぞれ,第 1 のオブジェクトの文字値が第 2 のオブジェクトの文字値よりも小さい,等しい,または大きい場合に対応します。




memcpy

オブジェクト間で指定された数のバイトをコピーします。



形式

#include <string.h>

void *memcpy (void *dest, const void *source, size_t size);

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


引数



dest

デスティネーション・オブジェクトへのポインタ。

source

ソース・オブジェクトへのポインタ。

size

コピーするオブジェクトの長さ。



説明

memcpy関数は, source がポイントするオブジェクトから, dest がポイントするオブジェクトに, size 個のバイトをコピーします。コピー先のメモリ領域 (dest) のオーバフローのチェックは行いません。 strcpy関数とは異なり, memcpy関数は null 文字が現れても停止しません。



戻り値

x dest の値。




memmove

オブジェクト間で指定された数のバイトをコピーします。



形式

#include <string.h>

void *memmove (void *dest, const void *source, size_t size);

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


引数



dest

デスティネーション・オブジェクトへのポインタ。

source

ソース・オブジェクトへのポインタ。

size

コピーするオブジェクトの長さ。



説明

HP C for OpenVMS システムでは, memmovememcpyは同じ機能を実行します。移植性が必要なプログラムは,dest がポイントする領域が, source がポイントする領域とオーバラップする可能性がある場合は, memmoveを使用するようにしてください。



戻り値

x dest の値。





#include <string.h> 
#include <stdio.h> 
                      
main() 
{ 
   char pdest[14] = "hello   there"; 
   char *psource = "you are there"; 
 
   memmove(pdest, psource, 7); 
   printf("%s\n", pdest); 
} 

この例は,次の出力を生成します。


you are there 




memset

指定されたオブジェクト内の指定されたバイト数を,指定された値に設定します。



形式

#include <string.h>

void *memset (void *s, int value, size_t size);

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


引数



s

配列ポインタ。

value

s に格納する値。

size

s に格納するバイト数。



説明

memset関数は, value ( unsigned charに変換) を, s がポイントするオブジェクトの最初の size個の文字のそれぞれにコピーします。

この関数は s を返します。s がポイントするコピー先のメモリ領域のオーバフローのチェックは行いません。




戻り値

x s の値。




mkdir

ディレクトリを作成します。



形式

#include <stat.h>

int mkdir (const char *dir_spec, mode_t mode); (ISO POSIX-1)

int mkdir (const char *dir_spec, mode_t mode, ...); (HP C Extension)




引数



dir_spec

有効な OpenVMS または UNIX スタイルのディレクトリ指定。デバイス名を含むことができます。次に例を示します。


DBA0:[BAY.WINDOWS]     /*    OpenVMS      */ 
/dba0/bay/windows      /*   UNIX style    */ 

この指定は,ノード名,ファイル名,ファイル・タイプ,ファイル・バージョン,またはワイルドカード文字を含むことはできません。同じ制約が,UNIX スタイルのディレクトリ指定にも適用されます。 UNIX スタイルの指定の制約については,『HP C ランタイム・ライブラリ・リファレンス・マニュアル(上巻)』第 1 章を参照してください。

mode

ファイル保護。具体的なファイル保護の情報については,このセクションの chmod関数を参照してください。

新しいディレクトリのファイル保護は,mode 引数,プロセスのファイル保護マスク ( umask関数を参照),および親ディレクトリのデフォルトの保護から決定されます。

OpenVMS におけるディレクトリ作成の動作と同様に, mkdirはディレクトリに対して決して削除アクセスを適用しません。削除アクセスを設定する必要があるアプリケーションは, chmodを明示的に呼び出して,書き込み許可を設定するようにしてください。

新しく作成されたディレクトリのファイル保護がどのように設定されるかについては,この関数の説明のセクションを参照してください。

...

以下のオプションの引数を表します。これらの引数は,引数リストの中での位置が固定されており,適当な位置に置くことはできません。
unsigned int uic
作成されるディレクトリのオーナを識別する利用者識別コード (UIC)。この引数が 0 の場合, HP C RTL は,作成されたディレクトリに,親ディレクトリの UIC を与えます。この引数が指定されなかった場合, HP C RTL は作成されたディレクトリにユーザの UIC を与えます。このオプションの引数は HP C RTL に固有のものであり,移植性はありません。

unsigned short max_versions
作成されたディレクトリに保持されるファイル・バージョンの数の最大値。システムはディレクトリを自動的にパージして,各ファイルを最高で max_versions 個しか保持しません。
この引数が 0 の場合, HP C RTL はファイル・バージョンの数に上限を設けません。
この引数が指定されなかった場合, HP C RTL は作成されたディレクトリに,親ディレクトリのデフォルトのバージョン制限を設定します。
このオプションの引数は HP C RTL に固有のものであり,移植性はありません。

unsigned short r_v_number
デバイスがボリューム・セットの一部である場合,作成されたディレクトリを配置するボリューム (デバイス)。この引数が指定されなかった場合, HP C RTL は作成されたディレクトリをボリューム・セット内に適当に配置します。このオプションの引数は HP C RTL に固有のものであり,移植性はありません。



説明

dir_spec が,存在しないディレクトリを含んだパスを指定していた場合には,中間のディレクトリも作成されます。 UNIX システムでは,これらの中間ディレクトリは存在していなくてはならず,自動的に作成されることはありません。


前へ 次へ 目次 索引



         印刷用画面へ

プライバシー 本サイト利用時の合意事項