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


前へ 次へ 目次 索引



asin

引数の逆正弦を返します。

形式

#include <math.h>

double asin (double x);

float asinf (float x); (Alpha only)

long double asinl (long double x); (Alpha only)

double asind (double x); (Alpha only)

float asindf (float x); (Alpha only)

long double asindl (long double x); (Alpha only)


引数

x

領域 [ - 1,1] の実数値として表したラジアン値。

説明

asin関数は,領域 [ - 1,1] の x に対して, [ - pi/2,pi/2] ラジアンの範囲で x の逆正弦の主値を計算します。

asind関数は,領域 [ - 1,1] の x に対して, [ - 90,90] 度の範囲で x の逆正弦の主値を計算します。

abs(x) が 1.0 より大きい場合, asin(x) の値は 0 であり, errnoは EDOM に設定されます。


asinh (Alpha only)

引数の双曲線逆正弦を返します。

形式

#include <math.h>

double asinh (double x);

float asinhf (float x);

long double asinhl (long double x);


引数

x

領域 [ - 無限大,+無限大] の実数値で表したラジアン値。

説明

asinh関数は,領域 [ - 無限大,+無限大] の x に対して,x の双曲線逆正弦を返します。ただし, asinh(x) = ln(x + sqrt(x**2 + 1)) です。

asinh関数は sinhの逆関数であり, asinh( sinh(x)) = x です。


assert

プログラムで実行時診断機能をインプリメントするために使用します。

形式

#include <assert.h>

void assert (int expression);


引数

expression

int型の式。

説明

assertを実行したときに,expression が False である (つまり 0 に評価される) 場合は, assertは異常終了した特定の呼び出しに関する情報 ( 引数のテキスト,ソース・ファイルの名前,ソース行番号などで,最後の 2 つはそれぞれ前処理マクロ __FILE__および __LINE__の値 ) を,インプリメンテーションで定義されている形式で標準エラー・ファイルに書き込みます。その後, abort関数を呼び出します。

assert関数は次の形式でメッセージを書き込みます。


Assertion failed:  expression, file aaa, line nnn

expression が True である ( つまり 0 以外の値に評価される ) 場合や,シグナル SIGABRT が無視されている場合は, assertは値を返しません。

注意

送出される式の一部にヌル文字 ('\0') が含まれている場合は,ヌル文字までのテキスト (ヌル文字を含む) だけが印刷されます。これは,ヌル文字が文字列の出力を終了するからです。

#include assert文より前にプリプロセッサ・ディレクティブ #defineNDEBUG を指定するか,または CC コマンド修飾子 /DEFINE=NDEBUG を指定してコンパイルすると, assert関数は無効になります。



#include <stdio.h> 
#include <assert.h> 
 
main() 
{ 
    printf("Only this and the assert\n"); 
    assert(1 == 2);     /* expression is FALSE */ 
 
    /* abort should be called so the printf will not happen. */ 
 
    printf("FAIL abort did not execute"); 
} 


atan


形式

#include <math.h>

double atan (double x);

float atanf (float x); (Alpha only)

long double atanl (long double x); (Alpha only)

double atand (double x); (Alpha only)

float atandf (float x); (Alpha only)

long double atandl (long double x); (Alpha only)


引数

x

実数値で表したラジアン値。

説明

atan関数は, [ -pi/2,pi/2 ] ラジアンの範囲で x の逆正接の主値を計算します。

atand関数は, [ - 90,90] 度の範囲で x の逆正接の主値を計算します。


atan2


形式

#include <math.h>

double atan2 (double y, double x);

float atan2f (float y, float x); (Alpha only)

long double atan2l (long double y, long double x); (Alpha only)

double atand2 (double y, double x); (Alpha only)

float atand2f (float y, float x); (Alpha only)

long double atand2l (long double y, long double x); (Alpha only)


引数

y

実数値で表したラジアン値。

x

実数値で表したラジアン値。

説明

atan2関数は, [ -pi,pi ] ラジアンの範囲で y/x の逆正接の主値を計算します。 atan2atan2fの符号は, y の符号によって決定されます。 atan2(y, x) の値は次のように計算されます。ただし,f はデータ型に関連付けられている小数ビットの数です。

入力引数の値 返される角度
x = 0 または y/x > 2**( f+1) pi/2 * (sign y)
x > 0 および y/x <= 2**( f+1) atan( y/x)
x < 0 および y/x <= 2**( f+1) pi * (sign y) + atan(y/x)

atand2関数は, [ - 180,180] 度の範囲で y/x の逆正接の主値を計算します。 atand2atand2fの符号は, y の符号によって決定されます。

次の引数は, atan2関数および atand2関数にとって不正な引数です。

関数 例外引数
atan2, atan2f, atan2l x = y = 0
atan2, atan2f, atan2l | x| = | y| = 無限大
atand2, atand2f, atand2l x = y = 0
atand2, atand2f, atand2l | x| = | y| = 無限大


atanh (Alpha only)

引数の双曲線逆正接を返します。

形式

#include <math.h>

double atanh (double x);

float atanhf (float x);

long double atanhl (long double x);


引数

x

領域 [ - 1,1] の実数値として表したラジアン値。

説明

atanh関数は x の双曲線逆正接を返します。 atanh関数は tanh関数の逆関数であり, atanh( tanh(x)) = x です。

|x| > 1 は不正な引数です。


atexit

引数を指定せずに呼び出された関数をプログラムの終了時に登録します。

形式

#include <stdlib.h>

int atexit (void (*func) (void));


引数

func

登録する関数を指すポインタ。

戻り値

0 登録が正常終了したことを示します。
0 以外の値 異常終了を示します。


制限事項

longjmp関数をハンドラの内部から実行することはできません。これは, longjmpの宛先アドレスがもはや存在しないからです。


#include <stdlib.h> 
#include <stdio.h> 
 
static void hw(void); 
 
main() 
{ 
    atexit(hw); 
} 
    
static void hw() 
{ 
        puts("Hello, world\n"); 
} 

この例では,次の出力が生成されます。


Hello, world 
 


atof

ASCII 文字列を倍精度数値に変換します。

形式

#include <stdlib.h>

double atof (const char *nptr);


引数

nptr

倍精度数値に変換する文字列を指すポインタ。文字列は,浮動小数点定数を解釈するために使用される規則と同じ規則で解釈されます。

説明

変換される文字列の形式は次のとおりです。


[white-spaces][+|-]digits[radix-character][digits][e|E[+|-]integer] 

ただし,radix-character は現在のロケールで定義されます。

認識されない最初の文字が検出されると,変換は終了します。

この関数は strtod(nptr, (char**) NULL)と同じです。


戻り値

x 変換後の値。
0 アンダフローまたは変換を実行できないことを示します。この関数は errno を ERANGE または EINVAL に設定します。
±HUGE_VAL オーバフローが発生しました。 errno は ERANGE に設定されます。


atoi, atol

ASCII 文字列を適切な数値に変換します。

形式

#include <stdlib.h>

int atoi (const char *nptr);

long int atol (const char *nptr);


引数

nptr

数値に変換する文字列を指すポインタ。

説明

atoi関数と atol関数は,文字列の最初の部分をそれぞれ 10 進数の int値および long int値に変換します。 atoi関数と atol関数は,変換で発生するオーバフローを考慮しません。変換される文字列は次の形式です。


[white-spaces][+|-]digits 

関数呼び出し atol (str)strtol (str, (char**)NULL, 10)と同じであり,関数呼び出し atoi (str)(int) strtol(str, (char**)NULL, 10)と同じです。ただし,どちらの場合もエラー発生時の動作が異なります。


戻り値

n 変換後の値。


atoq, atoll (Alpha only)

ASCII 文字列を適切な数値に変換します。 atollatoqの同意語です。

形式

#include <stdlib.h>

__int64 atoq (const char *nptr);

__int64 atoll (const char *nptr);


引数

nptr

数値に変換する文字列を指すポインタ。

説明

atoq(または atoll) 関数は,文字列の最初の部分を 10 進数の __int64値に変換します。この関数は変換で発生するオーバフローを考慮しません。変換される文字列の形式は次のとおりです。


[white-spaces][+|-]digits 

関数呼び出し atoq (str)strtoq (str, (char**)NULL, 10)と同じですが,エラー発生時の動作が異なります。


戻り値

n 変換後の値。


basename

パス名の最後のコンポーネントを返します。

形式

#include <libgen.h>

char *basename (char *path);

関数バリアント basename関数には, _basename32および _basename64という名前のバリアントがあり,それぞれ 32 ビット・ポインタ・サイズおよび 64 ビット・ポインタ・サイズで使用されます。ポインタ・サイズ固有の関数の使い方の詳細については,『HP C ランタイム・ライブラリ・リファレンス・マニュアル(上巻)』第 1.10 節を参照してください。

引数

path

ベース・パス名を抽出する UNIX 形式のパス名。

説明

basename関数は, path によって示される UNIX 形式のパス名を引数として受け付け,後続のスラッシュ (/) 文字を削除して,パス名の最後のコンポーネントを指すポインタを返します。

path がスラッシュ (/) 文字だけで構成されている場合は,この関数は文字列 "/" を指すポインタを返します。

path が NULL ポインタである場合や,空文字列を指す場合は,文字列 "." を指すポインタを返します。

basename関数は path によって示される文字列を変更する可能性があります。


戻り値

x path の最後のコンポーネントを指すポインタ。
"/" path が '/' 文字だけで構成されている場合。
"." path が NULL ポインタであるか,または空文字列を指す場合。


bcmp

バイト列を比較します。

形式

#include <strings.h>

void bcmp (const void *string1, const void *string2, size_t length);


引数

string1, string2

比較するバイト列。

length

バイト列の長さ (バイト数)。

説明

bcmp関数は,string1 のバイト列を string2 のバイト列と比較します。

文字列関数と異なり,ヌル・バイトの確認は行われません。長さが 0 のバイト列は常に同一であると解釈されます。

bcmpは, ANSI C 標準で定義されている memcmpに相当します。したがって,移植性の高いプログラムを実現するには, memcmpを使用することをお勧めします。


戻り値

0 バイト列は同一です。
0 以外の値 バイト列は同一ではありません。


bcopy

バイト列をコピーします。

形式

#include <strings.h>

void bcopy (const void *source, void *destination, size_t length);


引数

source

コピー元バイト列を指すポインタ。

destination

コピー先バイト列を指すポインタ。

length

バイト列の長さ (バイト数)。

説明

bcopy関数は,可変長バイト列に対して機能します。 length 引数の値 (バイト数) によって指定される長さのバイト列を source 引数のバイト列から destination 引数のバイト列にコピーします。

文字列関数と異なり,ヌル・バイトの確認は行われません。 length 引数が 0 (ゼロ) の場合,バイト列はコピーされません。

bcopyは, ANSI C 標準で定義されている memcpyに相当します。したがって,移植性の高いプログラムを実現するには, memcpyを使用することをお勧めします。


前へ 次へ 目次 索引