spBase
読み取り中…
検索中…
一致する文字列を見つけられません
基本関数

列挙型

enum  spFileKind {
  SP_FILE_KIND_UNKNOWN = -1 , SP_FILE_KIND_DOCUMENT = 0 , SP_FILE_KIND_SOURCE = 1 , SP_FILE_KIND_CONFIG = 2 ,
  SP_FILE_KIND_INCLUDE = 3 , SP_FILE_KIND_PICTURE = 10 , SP_FILE_KIND_FIGURE = 11 , SP_FILE_KIND_MUSIC = 20 ,
  SP_FILE_KIND_SOUND = 21 , SP_FILE_KIND_MOVIE = 25 , SP_FILE_KIND_APPLICATION = 30 , SP_FILE_KIND_LIBRARY = 31 ,
  SP_FILE_KIND_ARCHIVE = 40 , SP_FILE_KIND_URI = 50
}
 

メッセージの表示

void spSetWarningFlag (int flag)
 
void spWarning (const char *format,...)
 
void spSetMessageFlag (int flag)
 
void spMessage (const char *format,...)
 
void spError (int status, const char *format,...)
 
void spProgError (const char *func_name, const char *format,...)
 
void spSetDebugStdout (int flag)
 
void spSetDebugLevel (int level)
 
int spGetDebugLevel (void)
 
void spDebug (int level, const char *func_name, const char *format,...)
 

システム関連

void spSleep (int sec)
 
void spMSleep (int msec)
 
long spGetProcessId (void)
 
spBool spExecBrowser (const char *base_url, const char *sub_url, spBool local_path)
 

文字列処理

int spStrCaseCmp (const char *s1, const char *s2)
 
int spStrNCaseCmp (const char *s1, const char *s2, int n)
 
int spStrWhite (const char *string)
 
char * spSkipWhite (const char *string)
 
char * xspStrCat (const char *orig, const char *src)
 
char * spStrCat (char *dest, int destsize, const char *src)
 
char * spStrCopy (char *dest, int destsize, const char *src)
 
char * spGetSuffix (const char *name)
 
int spEqSuffix (const char *file1, const char *file2)
 
spBool spRemoveNSuffix (char *path, char *removed_suffix, int suffixsize)
 
spBool spRemoveSuffix (char *path, char *removed_suffix)
 
spBool spReplaceNSuffix (char *path, int pathsize, const char *suffix)
 
spBool spReplaceSuffix (char *path, const char *suffix)
 
int spConvertToEscapedString (char *escaped, int bufsize, const char *string, const char *charlist)
 
int spConvertFromEscapedString (char *string, int bufsize, const char *escaped, const char *charlist)
 

ファイルとディレクトリ

FILE * spOpenFile (const char *path, const char *mode)
 
int spCloseFile (FILE *stream)
 
int spSeekFile (FILE *stream, spFileOffset offset, int origin)
 
int spSeekFile64 (FILE *stream, spLong64 offset, int origin)
 
spFileOffset spTellFile (FILE *stream)
 
spBool spGetFileInfo (const char *path, spBool *dir_flag, spFileOffset *size)
 
spBool spExists (const char *path)
 
spBool spIsFile (const char *path)
 
spBool spIsDir (const char *path)
 
spBool spCreateDir (const char *path, unsigned short mode)
 
spBool spCreateDirRecursive (const char *path, unsigned short mode)
 
spBool spRemoveDir (const char *path)
 
spBool spRemoveFile (const char *path)
 
spBool spRenameFile (const char *oldpath, const char *newpath)
 

ファイル・ディレクトリ名

spBool spAddDirSeparator (char *dir)
 
spBool spRemoveDirSeparator (char *dir)
 
spBool spIsExactName (const char *name)
 
char * xspGetExactName (const char *name)
 
char * spGetBaseName (const char *name)
 
char * xspGetBaseName (const char *name)
 
char * spGetDirName (char *filename)
 
char * xspGetDirName (const char *filename)
 
char * xspGetReadablePath (const char *real_path)
 
char * xspGetRealPath (const char *readable_path)
 
char * xspCutPathList (const char *pathlist, int col)
 
char * xspAppendPathList (const char *pathlist, const char *new_list)
 

システム・アプリケーション用ディレクトリ

const char * spGetCurrentDir (void)
 
char * xspGetCurrentDir (void)
 
const char * spGetHomeDir (void)
 
char * xspGetHomeDir (void)
 
const char * spGetTempDir (void)
 
char * xspGetTempDir (void)
 
spBool spSetApplicationId (const char *id)
 
const char * spGetCompanyId (void)
 
const char * spGetApplicationId (void)
 
const char * spGetVersionId (void)
 
const char * spCreateApplicationDir (spBool *id_depend, spBool *version_depend)
 
const char * spGetApplicationDir (spBool *version_depend)
 
char * xspGetApplicationDir (spBool *version_depend)
 
const char * spGetApplicationTempDir (void)
 
char * xspGetApplicationTempDir (void)
 
spBool spSetApplicationTempDir (const char *dir)
 
char * xspGetDocumentDir (spFileKind file_kind)
 

数学関数

double spRound (double x)
 
double spFix (double x)
 
double spFrac (double x)
 
double spRem (double x, double y)
 
long spFactorial (int n)
 
void spNFtos (char *buf, int bufsize, double x)
 
void spFtos (char *buf, double x)
 
long spNextPow2 (long n)
 

型の変換

int spGetBitByte (int samp_bit, spBool *float_flag)
 
double spGetBitNormalizeFactor (int samp_bit)
 

詳解

列挙型詳解

◆ spFileKind

enum spFileKind

ドキュメントを扱うアプリケーション用のファイルの種類を表す列挙型です.

列挙値
SP_FILE_KIND_UNKNOWN 

不明な種類のファイルです.

SP_FILE_KIND_DOCUMENT 

一般的なドキュメントです.

SP_FILE_KIND_SOURCE 

ソースコードです.

SP_FILE_KIND_CONFIG 

設定ファイルです.

SP_FILE_KIND_INCLUDE 

インクルードファイルです.

SP_FILE_KIND_PICTURE 

写真ファイルや画像ファイルです.

SP_FILE_KIND_FIGURE 

図のファイルです.

SP_FILE_KIND_MUSIC 

MIDIファイルや楽曲ファイルです.

SP_FILE_KIND_SOUND 

音のファイルです.

SP_FILE_KIND_MOVIE 

ムービーファイルです.

SP_FILE_KIND_APPLICATION 

アプリケーションファイルです.

SP_FILE_KIND_LIBRARY 

ライブラリファイルです.

SP_FILE_KIND_ARCHIVE 

アーカイブファイルです.

SP_FILE_KIND_URI 

URIへのリンクです.

関数詳解

◆ spSetWarningFlag()

void spSetWarningFlag ( int flag)
extern

標準エラー出力に,警告のメッセージを出力するかどうかを設定します. ここで言う警告のメッセージとは, spWarning() で出力されるメッセージのことです.

引数
[in]flagflag が0のときは,警告のメッセージを出力せず, flag が非0のときは,警告のメッセージを出力します.

◆ spWarning()

void spWarning ( const char * format,
... )
extern

標準エラー出力に,警告のメッセージを出力します. spSetWarningFlag() で,警告メッセージを出力しないように設定した場合は,メッセージは出力されません.

引数
[in]formatformat は,printfなどの書式と同じです.

◆ spSetMessageFlag()

void spSetMessageFlag ( int flag)
extern

標準エラー出力に,メッセージを出力するかどうかを設定します. ここで言うメッセージとは, spMessage() で出力されるメッセージのことです.

引数
[in]flagflag が0のときは,メッセージを出力せず, flag が非0のときは,メッセージを出力します.

◆ spMessage()

void spMessage ( const char * format,
... )
extern

標準エラー出力に,メッセージを出力します. spSetMessageFlag() で,メッセージを出力しないように設定した場合は,メッセージは出力されません.

引数
[in]formatformat は,printfなどの書式と同じです.

◆ spError()

void spError ( int status,
const char * format,
... )
extern

標準エラー出力に,エラーメッセージを出力し,プログラムを終了します. この関数は,ユーザーの行為が原因で起こったエラーに用いて下さい. プログラマーによって引き起こされたエラーについては, spProgError() を使用することをおすすめします.

引数
[in]status終了状態を指定します.
[in]formatformat は,printfなどの書式と同じです.
各種例
spcat.c.

◆ spProgError()

void spProgError ( const char * func_name,
const char * format,
... )
extern

標準エラー出力に,エラーメッセージと,エラーの起こった関数名を出力し,プログラムを終了します. この関数は,プログラマーのミスなどによって引き起こされたエラーに用いて下さい. ユーザーの行為により引き起こされたエラーについては, spError() を使用することをお勧めします.

引数
[in]func_name関数名のヌル終端文字列を指定します.関数名を出力したくない場合は,NULLを指定して下さい.
[in]formatformat は,printfなどの書式と同じです.

◆ spSetDebugStdout()

void spSetDebugStdout ( int flag)
extern

デバッグメッセージを標準出力に出力するか,標準エラー出力に出力するかを設定します. ここで言うデバッグメッセージとは, spDebug() で出力されるメッセージのことです. デフォルトでは,デバッグメッセージは標準エラー出力に出力されます.

引数
[in]flagflag が,0のときは,デバッグメッセージを標準エラー出力に出力し,非0のときは,標準出力に出力します.

◆ spSetDebugLevel()

void spSetDebugLevel ( int level)
extern

デバッグレベルを設定します.

引数
[in]levelspDebug() のデバッグレベルが level 以下のもののメッセージが出力されるようになります.
各種例
dirtest.c, openlib.c.

◆ spGetDebugLevel()

int spGetDebugLevel ( void )
extern

デバッグレベルを取得します.

戻り値
現在のデバッグレベルが返ります.

◆ spDebug()

void spDebug ( int level,
const char * func_name,
const char * format,
... )
extern

デバッグメッセージを出力します.

引数
[in]levelspSetDebugLevel() によって設定されたデバッグレベルが level 以下のときに,メッセージが出力されるようになります.
[in]func_name関数名のヌル終端文字列を指定します.関数名を出力したくない場合は,NULLを指定して下さい.
[in]formatformat は,printfなどの書式と同じです.
各種例
pstest.c.

◆ spSleep()

void spSleep ( int sec)
extern

プログラムの実行を一時的に停止させます.

引数
[in]sec停止させる時間を秒で指定します.

◆ spMSleep()

void spMSleep ( int msec)
extern

プログラムの実行を一時的に停止させます.

引数
[in]msec停止させる時間をミリ秒で指定します. 停止する時間の正確さは環境によって異なります.

◆ spGetProcessId()

long spGetProcessId ( void )
extern

プロセスごとに一意の値となるプロセスIDを取得します.

戻り値
プロセスIDが返ります.
各種例
dirtest.c.

◆ spExecBrowser()

spBool spExecBrowser ( const char * base_url,
const char * sub_url,
spBool local_path )
extern

URLをブラウザーで開きます.

引数
[in]base_urlスキーム・ホスト部分など,URLのベースとなる部分のヌル終端文字列を指定します. local_path にSP_TRUEを指定すれば,URLではなく,ファイルやディレクトリをそのまま指定することもできます.
[in]sub_urlbase_url 以降の部分のヌル終端文字列を指定します.不要な場合はNULLを指定します. base_url がファイルやディレクトリのパスで,かつ,'index.html#foo'のように'#'を含む場合には,この引数を指定しないと機能しません.
[in]local_pathファイルやディレクトリのパスをそのまま指定する場合はSP_TRUEを指定します. 通常のスキームが含まれるURLの場合はSP_FALSEを指定します.
戻り値
SP_TRUE成功
SP_FALSE失敗
各種例
dirtest.c.

◆ spStrCaseCmp()

int spStrCaseCmp ( const char * s1,
const char * s2 )
extern

大文字・小文字を区別せずに文字列を比較します.

引数
[in]s1,s2比較対象となるヌル終端文字列を指定します.
戻り値
文字列が等しければ0が返ります.文字コード順で s1 > s2 で正,s1 < s2 で負となります.

◆ spStrNCaseCmp()

int spStrNCaseCmp ( const char * s1,
const char * s2,
int n )
extern

大文字・小文字を区別せずに文字列を比較します.

引数
[in]s1,s2比較対象となるヌル終端文字列を指定します.
[in]n先頭から何文字を比較するかを指定します.
戻り値
文字列が等しければ0が返ります.文字コード順で s1 > s2 で正,s1 < s2 で負となります.

◆ spStrWhite()

int spStrWhite ( const char * string)
extern

文字列が,空白文字のみで成り立っているかどうかを判定します.

引数
[in]string入力ヌル終端文字列を指定します.
戻り値
空白文字だけで成り立っていた場合に1を返し,そうでなかった場合に は,0を返します

◆ spSkipWhite()

char * spSkipWhite ( const char * string)
extern

入力文字列に対し,空白文字のみで成り立って部分をスキップします.

引数
[in]string入力ヌル終端文字列を指定します.
戻り値
非空白文字の最初の位置を示すポインターが返されます.

◆ xspStrCat()

char * xspStrCat ( const char * orig,
const char * src )
extern

文字列の連結を行います.

引数
[in]orig元の入力ヌル終端文字列を指定します. spStrCat() と異なり,この文字列そのものは変更されません.
[in]src連結するヌル終端文字列を指定します.
戻り値
連結後のメモリ確保されたヌル終端文字列が返ります.必要がなくなったら xspFree() によりメモリの解放をして下さい.

◆ spStrCat()

char * spStrCat ( char * dest,
int destsize,
const char * src )
extern

文字列の連結を行います.

引数
[in,out]dest入出力ヌル終端文字列を指定します. xspStrCat() と異なり,この文字列そのものに対して連結が行われます.
[in]destsizedest のバッファの大きさを指定します.
[in]src連結するヌル終端文字列を指定します.
戻り値
dest の先頭アドレスが返ります.

◆ spStrCopy()

char * spStrCopy ( char * dest,
int destsize,
const char * src )
extern

文字列をコピーします.

引数
[out]destコピー先のバッファを指定します.
[in]destsizeバッファの大きさを指定します.
[in]srcコピー元のヌル終端文字列を指定します.
戻り値
dest の先頭アドレスが返ります.

◆ spGetSuffix()

char * spGetSuffix ( const char * name)
extern

文字列から拡張子を検索します.

引数
[in]nameヌル終端文字列を指定します.
戻り値
拡張子の位置を示すポインターが返ります.拡張子が見つからなかった場合はNULLを返します.

◆ spEqSuffix()

int spEqSuffix ( const char * file1,
const char * file2 )
extern

拡張子が等しいかどうかを判定します.

引数
[in]file1,file2判定を行うファイル名のヌル終端文字列を指定します.
戻り値
引数として与えた二つのファイルの拡張子が同じ場合に1を,そうでない場合に,0を返します.拡張子が見つからない場合も,0を返します.

◆ spRemoveNSuffix()

spBool spRemoveNSuffix ( char * path,
char * removed_suffix,
int suffixsize )
extern

文字列から拡張子を取り除きます.

引数
[in,out]path対象ヌル終端文字列を指定します.
[in]removed_suffix文字列の終端には必ずヌル文字が付加されます.
[in]suffixsizeremoved_suffix のバッファの大きさを指定します.
戻り値
SP_TRUE成功
SP_FALSE失敗

◆ spRemoveSuffix()

spBool spRemoveSuffix ( char * path,
char * removed_suffix )
extern

文字列から拡張子を取り除きます.拡張子がない場合には取り除く処理は行われません.

引数
[in,out]path対象ヌル終端文字列を指定します.
[in]removed_suffix文字列の終端には必ずヌル文字が付加されます.
戻り値
SP_TRUE成功
SP_FALSE失敗

◆ spReplaceNSuffix()

spBool spReplaceNSuffix ( char * path,
int pathsize,
const char * suffix )
extern

文字列における拡張子を置き換えます.拡張子がない場合は拡張子が追加されます.

引数
[in,out]path対象ヌル終端文字列を指定します.
[in]pathsizepath のバッファの大きさを指定します.
[in]suffix新しい拡張子のヌル終端文字列を指定します.
戻り値
SP_TRUE成功
SP_FALSE失敗

◆ spReplaceSuffix()

spBool spReplaceSuffix ( char * path,
const char * suffix )
extern

文字列における拡張子を置き換えます.拡張子がない場合は拡張子が追加されます.

引数
[in,out]path対象ヌル終端文字列を指定します.
[in]suffix新しい拡張子のヌル終端文字列を指定します.
戻り値
SP_TRUE成功
SP_FALSE失敗

◆ spConvertToEscapedString()

int spConvertToEscapedString ( char * escaped,
int bufsize,
const char * string,
const char * charlist )
extern

入力文字列に対し,特定の文字を '\' でエスケープして出力します.

引数
[in]escaped出力バッファを指定します.正常に終了した場合は,文字列の終端に必ずヌル文字が付加されます.
[in]bufsize出力バッファの大きさを指定します.
[in]string入力ヌル終端文字列を指定します.
[in]charlistエスケープ対象の文字のリストをヌル終端文字列で指定します. 例えば,'/'と'-'をエスケープするのであれば, "/-" を指定します.
戻り値
何文字分 '\' が挿入されたかが返ります.エラーが発生した場合には-1が返ります.

◆ spConvertFromEscapedString()

int spConvertFromEscapedString ( char * string,
int bufsize,
const char * escaped,
const char * charlist )
extern

入力文字列に対し,特定の文字の '\' によるエスケープを削除して出力します.

引数
[in]string出力バッファを指定します.正常に終了した場合は,文字列の終端に必ずヌル文字が付加されます.
[in]bufsize出力バッファの大きさを指定します.
[in]escaped'\' によるエスケープが含まれる入力ヌル終端文字列を指定します.
[in]charlistエスケープ対象の文字のリストをヌル終端文字列で指定します. 例えば,'/'と'-'のエスケープを削除するのであれば, "/-" を指定します. 全ての'\' によるエスケープを削除したい場合は NULL を指定します.
戻り値
何文字分 '\' が削除されたかが返ります.エラーが発生した場合には-1が返ります.

◆ spOpenFile()

FILE * spOpenFile ( const char * path,
const char * mode )
extern

ファイルを開きます. この関数で開いたファイルを閉じるときは,必ず spCloseFile() を使って下さい.

引数
[in]pathファイル名をヌル終端文字列で指定します.ファイル名として,"stdin"を指定すると標準 入力を開き,"stdout"を指定すると標準出力を開き,"-"を指定すると mode の値に応じて標準入力か標準出力のいずれかを開きます, これらの機能を使用する必要がない場合は, fopen を用いても構いません(その場合は, spCloseFile() を使ってはいけません).
[in]modeファイルを開くときのモードをヌル終端文字列で指定します. fopen などのモードと同じです.
戻り値
ファイルポインターを返します.エラーが発生した場合は,NULLが返ります.

◆ spCloseFile()

int spCloseFile ( FILE * stream)
extern

開いたファイルを閉じます. この関数は, spOpenFile() で開いたファイルのみに使用して下さい.

引数
[in]stream開いたファイルのファイルポインターを指定します.
戻り値
fcloseの戻り値と同様です.

◆ spSeekFile()

int spSeekFile ( FILE * stream,
spFileOffset offset,
int origin )
extern

指定した位置にファイルポインターを移動します.

引数
[in]stream開いたファイルのファイルポインターを指定します.
[in]offset基準となる位置からの移動距離をバイト単位で指定します.
[in]origin基準となる位置を指定します.ファイルポインターの現在位置を表すSEEK_CUR,ファイルの末尾を表すSEEK_END,ファイルの先頭を表すSEEK_SETのいずれかを指定します. 。
戻り値
成功した場合は0が返ります.

◆ spSeekFile64()

int spSeekFile64 ( FILE * stream,
spLong64 offset,
int origin )
extern

指定した位置にファイルポインターを移動します.

引数
[in]stream開いたファイルのファイルポインターを指定します.
[in]offset基準となる位置からの移動距離を64ビット整数のバイト単位で指定します.
[in]origin基準となる位置を指定します.ファイルポインターの現在位置を表すSEEK_CUR,ファイルの末尾を表すSEEK_END,ファイルの先頭を表すSEEK_SETのいずれかを指定します. 。
戻り値
成功した場合は0が返ります.

◆ spTellFile()

spFileOffset spTellFile ( FILE * stream)
extern

ファイルポインターの現在位置を取得します.

引数
[in]stream開いたファイルのファイルポインターを指定します.
戻り値
現在位置がバイト単位で返されます.

◆ spGetFileInfo()

spBool spGetFileInfo ( const char * path,
spBool * dir_flag,
spFileOffset * size )
extern

ファイルの情報を取得します.

引数
[in]pathファイルのパスをヌル終端文字列で指定します.
[out]dir_flagディレクトリであるかどうかが返ります.ポインタの指す先がSP_TRUEであればディレクトリです.
[out]sizeファイルのサイズが返ります.
戻り値
SP_TRUE成功
SP_FALSE失敗

◆ spExists()

spBool spExists ( const char * path)
extern

パスが存在しているかどうかを判定します.

引数
[in]pathパスをヌル終端文字列で指定します.
戻り値
SP_TRUE存在している
SP_FALSE存在していない

◆ spIsFile()

spBool spIsFile ( const char * path)
extern

パスがファイルであるかどうかを判定します.

引数
[in]pathパスをヌル終端文字列で指定します.
戻り値
SP_TRUEファイルである
SP_FALSEファイルでない

◆ spIsDir()

spBool spIsDir ( const char * path)
extern

パスがディレクトリであるかどうかを判定します.

引数
[in]pathパスをヌル終端文字列で指定します.
戻り値
SP_TRUEディレクトリである
SP_FALSEディレクトリでない

◆ spCreateDir()

spBool spCreateDir ( const char * path,
unsigned short mode )
extern

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

引数
[in]path作成するディレクトリをヌル終端文字列で指定します.
[in]modeパーミッションを指定します.例えば,0755 などを指定します.UNIX系のOSのみで有効です.
戻り値
SP_TRUE成功
SP_FALSE失敗

◆ spCreateDirRecursive()

spBool spCreateDirRecursive ( const char * path,
unsigned short mode )
extern

ディレクトリを作成します.パスの途中に存在しないディレクトリがある場合は,そのディレクトリも作成します.

引数
[in]path作成するディレクトリをヌル終端文字列で指定します.
[in]modeパーミッションを指定します.例えば,0755 などを指定します.UNIX系のOSのみで有効です.
戻り値
SP_TRUE成功
SP_FALSE失敗

◆ spRemoveDir()

spBool spRemoveDir ( const char * path)
extern

ディレクトリを削除します.

引数
[in]path削除対象のディレクトリをヌル終端文字列で指定します.
戻り値
SP_TRUE成功
SP_FALSE失敗

◆ spRemoveFile()

spBool spRemoveFile ( const char * path)
extern

ファイルを削除します.

引数
[in]path削除対象のファイルをヌル終端文字列で指定します.
戻り値
SP_TRUE成功
SP_FALSE失敗

◆ spRenameFile()

spBool spRenameFile ( const char * oldpath,
const char * newpath )
extern

ファイル名を変更します.

引数
[in]oldpath元のファイルのパスをヌル終端文字列で指定します.
[in]newpath新しいパスをヌル終端文字列で指定します.
戻り値
SP_TRUE成功
SP_FALSE失敗

◆ spAddDirSeparator()

spBool spAddDirSeparator ( char * dir)
extern

文字列の末尾にディレクトリセパレータの文字を追加します. UNIX系のOSでは,'/',Windowsでは'\'が追加されます. すでにディレクトリセパレータが末尾にある場合には追加しません.

引数
[in,out]dir入出力ヌル終端文字列を指定します.
戻り値
SP_TRUE成功
SP_FALSE失敗

◆ spRemoveDirSeparator()

spBool spRemoveDirSeparator ( char * dir)
extern

文字列の末尾のディレクトリセパレータの文字を取り除きます.

引数
[in,out]dir入出力ヌル終端文字列を指定します.
戻り値
SP_TRUE成功
SP_FALSE失敗

◆ spIsExactName()

spBool spIsExactName ( const char * name)
extern

入力ファイル名が,ディレクトリ名まで含む文字列であるかどうかを判定します.

引数
[in]nameファイル名のヌル終端文字列を指定します.
戻り値
SP_TRUE成功
SP_FALSE失敗

◆ xspGetExactName()

char * xspGetExactName ( const char * name)
extern

正確なファイル名を取得します. 入力ファイル名には,ホームディレクトリを示す"~"を含むファイル名や,現在のディレクトリを示す".",一つ上のディレクトリを示す".."などが使用できます. ただし,これらの文字は先頭の一つ目だけが有効になります.すなわち,先頭以外の場所や繰り返しこれらの文字を使用してもそのまま処理されます. また,UNIX環境ではホームディレクトリを示す"~"の後にユーザー名を指定すると そのユーザーのホームディレクトリを得ることができますが,その他の環境ではできません.

引数
[in]nameファイル名のヌル終端文字列を指定します.
戻り値
正確なファイル名のメモリ確保されたヌル終端文字列が返ります.必要がなくなったら xspFree() によりメモリの解放をして下さい. エラーが発生した場合は,NULLが返ります. また,入力ファイル名が,ディレクトリ名を含まない場合,カレントディレクトリが挿入されます.
各種例
dirtest.c.

◆ spGetBaseName()

char * spGetBaseName ( const char * name)
extern

ディレクトリ名を含むファイル名から,ファイル名のみを取り出します.

引数
[in]nameファイル名のヌル終端文字列を指定します.この文字列の内容は変更されません.
戻り値
入力ファイル名の該当する位置へのポインタが返されます.エラーが発生した場合は,NULLが返ります.

◆ xspGetBaseName()

char * xspGetBaseName ( const char * name)
extern

ディレクトリ名を含むファイル名から,ファイル名のみを取り出します.

引数
[in]nameファイル名のヌル終端文字列を指定します.
戻り値
ファイル名のメモリ確保されたヌル終端文字列が返されます.必要がなくなったら xspFree() によりメモリの解放をして下さい. エラーが発生した場合は,NULLが返ります.

◆ spGetDirName()

char * spGetDirName ( char * filename)
extern

ディレクトリ名を含むファイル名から,ディレクトリ名のみを取り出します.

引数
[in]filenameファイル名が含まれる入力ヌル終端文字列を指定します.関数呼び出し後は文字列の内容が変更されます.
戻り値
filename におけるディレクトリ名へのポインタが返されます. エラーが発生した場合は,NULLが返ります.

◆ xspGetDirName()

char * xspGetDirName ( const char * filename)
extern

ディレクトリ名を含むファイル名から,ディレクトリ名のみを取り出します.

引数
[in]filenameファイル名が含まれる入力ヌル終端文字列を指定します.
戻り値
ディレクトリ名のメモリ確保されたヌル終端文字列が返されます.必要がなくなったら xspFree() によりメモリの解放をして下さい. エラーが発生した場合は,NULLが返ります.

◆ xspGetReadablePath()

char * xspGetReadablePath ( const char * real_path)
extern

ファイルやディレクトリを開く際のパスから表示する際に使うパスに変換します.一部の環境では,開く際に使うパスと異なります.

引数
[in]real_pathファイルやディレクトリを開く際のパスのヌル終端文字列を指定します.
戻り値
パスのメモリ確保されたヌル終端文字列が返されます.必要がなくなったら xspFree() によりメモリの解放をして下さい.

◆ xspGetRealPath()

char * xspGetRealPath ( const char * readable_path)
extern

表示する際のパスからファイルやディレクトリを開く際に使うパスに変換します.一部の環境では,表示する際のパスと異なります.

引数
[in]readable_pathファイルやディレクトリを表示する際のパスのヌル終端文字列を指定します.
戻り値
パスのメモリ確保されたヌル終端文字列が返されます.必要がなくなったら xspFree() によりメモリの解放をして下さい.

◆ xspCutPathList()

char * xspCutPathList ( const char * pathlist,
int col )
extern

パスのリストから特定のパスを取り出します. パスのリストは,環境に依存した1文字分のセパレータで区切られたものです. セパレータは,Windowsでは';',それ以外の環境では':'です.プログラム内では, SP_PATHLIST_SEPARATOR で使用できます.

引数
[in]pathlistパスのリストのヌル終端文字列を指定します.
[in]col何個目のパスを取り出すかを0始まりで指定します.
戻り値
必要がなくなったら xspFree() によりメモリの解放をして下さい.

◆ xspAppendPathList()

char * xspAppendPathList ( const char * pathlist,
const char * new_list )
extern

既存のパスのリストに別のリストを結合します. パスのリストは,環境に依存した1文字分のセパレータで区切られたものです. セパレータは,Windows,Macでは';',それ以外の環境では':'です.プログラム内では, SP_PATHLIST_SEPARATOR で使用できます.

引数
[in]pathlistパスのリストのヌル終端文字列を指定します.
[in]new_list結合したいリストをヌル終端文字列で指定します.
戻り値
結合後のリストのメモリ確保されたヌル終端文字列が返ります. 必要がなくなったら xspFree() によりメモリの解放をして下さい.

◆ spGetCurrentDir()

const char * spGetCurrentDir ( void )
extern

現在いるディレクトリ名を取得します.

戻り値
現在いるディレクトリ名のスタティックなヌル終端文字列が返ります.

◆ xspGetCurrentDir()

char * xspGetCurrentDir ( void )
extern

現在いるディレクトリ名を取得します.

戻り値
現在いるディレクトリ名のメモリ確保されたヌル終端文字列が返されます.必要がなくなったら xspFree() によりメモリの解放をして下さい.
各種例
dirtest.c.

◆ spGetHomeDir()

const char * spGetHomeDir ( void )
extern

ホームディレクトリ名を取得します.

戻り値
ホームディレクトリ名のスタティックなヌル終端文字列が返ります.

◆ xspGetHomeDir()

char * xspGetHomeDir ( void )
extern

ホームディレクトリ名を取得します.

戻り値
ホームディレクトリ名のメモリ確保されたヌル終端文字列が返ります.必要がなくなったら xspFree() によりメモリの解放をして下さい.
各種例
dirtest.c.

◆ spGetTempDir()

const char * spGetTempDir ( void )
extern

システムのテンポラリディレクトリ名を取得します.

戻り値
テンポラリディレクトリ名のスタティックなヌル終端文字列が返ります.

◆ xspGetTempDir()

char * xspGetTempDir ( void )
extern

システムのテンポラリディレクトリ名を取得します.

戻り値
テンポラリディレクトリ名のメモリ確保されたヌル終端文字列が返ります.必要がなくなったら xspFree() によりメモリの解放をして下さい.
各種例
dirtest.c.

◆ spSetApplicationId()

spBool spSetApplicationId ( const char * id)
extern

アプリケーションIDを設定します.

引数
[in]idアプリケーションIDを指定します.ここでは,'/'区切りにより,カンパニーID・バージョンIDを含めることができます. 例えば,アプリケーションIDが"test",カンパニーIDが"company",バージョンIDが"0.1"であれば,"test/company/0.1"のように指定できます.
戻り値
SP_TRUE成功
SP_FALSE失敗
各種例
dirtest.c.

◆ spGetCompanyId()

const char * spGetCompanyId ( void )
extern

spSetApplicationId() で設定したカンパニーIDを取得します.

戻り値
カンパニーIDのスタティックなヌル終端文字列が返ります.

◆ spGetApplicationId()

const char * spGetApplicationId ( void )
extern

spSetApplicationId() で設定したアプリケーションIDを取得します.

戻り値
アプリケーションIDのスタティックなヌル終端文字列が返ります.

◆ spGetVersionId()

const char * spGetVersionId ( void )
extern

spSetApplicationId() で設定したバージョンIDを取得します.

戻り値
バージョンIDのスタティックなヌル終端文字列が返ります.

◆ spCreateApplicationDir()

const char * spCreateApplicationDir ( spBool * id_depend,
spBool * version_depend )
extern

spSetApplicationId() で設定したバージョンID等に応じたアプリケーション用のディレクトリを作成します. すでに作成済みの場合は作成処理は行いません.
ディレクトリの作成は,以下のルールに基づいて行われます.

引数
[in,out]id_dependアプリケーションIDに応じたディレクトリを作成したい場合はSP_TRUEを指定します. そして,実際にそのように作成できた場合はSP_TRUEが返ります.
[in,out]version_dependバージョンIDに応じたディレクトリを作成したい場合はSP_TRUEを指定します. そして,実際にそのように作成できた場合はSP_TRUEが返ります.
戻り値
作成されたディレクトリのスタティックなヌル終端文字列が返ります.エラーが発生した場合は,NULLが返ります.
各種例
dirtest.c.

◆ spGetApplicationDir()

const char * spGetApplicationDir ( spBool * version_depend)
extern

アプリケーション用のディレクトリを取得します. spCreateApplicationDir() が一度も呼ばれていない場合は作成を行います.

引数
[in,out]version_dependバージョン依存であるかの情報です.
戻り値
アプリケーション用のディレクトリのスタティックなヌル終端文字列が返ります.
各種例
dirtest.c.

◆ xspGetApplicationDir()

char * xspGetApplicationDir ( spBool * version_depend)
extern

アプリケーション用のディレクトリを取得します. spCreateApplicationDir() が一度も呼ばれていない場合は作成を行います.

引数
[in,out]version_dependバージョン依存であるかの情報です.
戻り値
アプリケーション用のディレクトリのメモリ確保されたヌル終端文字列が返ります. 必要がなくなったら xspFree() によりメモリの解放をして下さい.

◆ spGetApplicationTempDir()

const char * spGetApplicationTempDir ( void )
extern

アプリケーション用のテンポラリディレクトリを取得します.
ディレクトリが存在していない場合は,ディレクトリが以下のルールに基づいて作成されます.

  1. spGetApplicationDir()/tmp
  2. spGetApplicationDir()/.<application id>-<version id>_tmp (Windows以外)
  3. spGetApplicationDir()/.<application id>_tmp (Windows以外)
  4. spGetTempDir()
戻り値
アプリケーション用のテンポラリディレクトリのスタティックなヌル終端文字列が返ります.
各種例
dirtest.c.

◆ xspGetApplicationTempDir()

char * xspGetApplicationTempDir ( void )
extern

アプリケーション用のテンポラリディレクトリを取得します.
ディレクトリが存在していない場合は,ディレクトリが以下のルールに基づいて作成されます.

  1. spGetApplicationDir()/tmp
  2. spGetApplicationDir()/.<application id>-<version id>_tmp (Windows以外)
  3. spGetApplicationDir()/.<application id>_tmp (Windows以外)
  4. spGetTempDir()
戻り値
アプリケーション用のテンポラリディレクトリのメモリ確保されたヌル終端文字列が返ります. 必要がなくなったら xspFree() によりメモリの解放をして下さい.

◆ spSetApplicationTempDir()

spBool spSetApplicationTempDir ( const char * dir)
extern

アプリケーション用のテンポラリディレクトリを設定します.

引数
[in]dirパスをヌル終端文字列で指定します.
戻り値
SP_TRUE成功
SP_FALSE失敗

◆ xspGetDocumentDir()

char * xspGetDocumentDir ( spFileKind file_kind)
extern

現在の環境におけるドキュメント用のディレクトリを取得します.

引数
[in]file_kindドキュメントの種類を指定します.ドキュメント一般を表す SP_FILE_KIND_DOCUMENT , 写真を表す SP_FILE_KIND_PICTURE などが指定できます.
戻り値
メモリ確保されたヌル終端文字列が返ります.必要がなくなったら xspFree() によりメモリの解放をして下さい.
各種例
dirtest.c.

◆ spRound()

double spRound ( double x)
extern

四捨五入を行います.

引数
[in]x四捨五入を行う数字を入力します.
戻り値
四捨五入された数字が返ります.
各種例
pstest.c.

◆ spFix()

double spFix ( double x)
extern

ゼロに近い整数に丸めます.x が正の場合は floor と同じです.

戻り値
整数に丸められた値が返ります.

◆ spFrac()

double spFrac ( double x)
extern

浮動小数点数の小数部分を取得します.

戻り値
小数部分の数字が返ります.

◆ spRem()

double spRem ( double x,
double y )
extern

余りを計算します.

戻り値
x / yの余りが返ります.

◆ spFactorial()

long spFactorial ( int n)
extern

階乗を計算します.

戻り値
nの階乗が返ります.

◆ spNFtos()

void spNFtos ( char * buf,
int bufsize,
double x )
extern

浮動小数点数を,文字列に変換します.

引数
[out]buf変換後の文字列をコピーするバッファを指定します.
[in]bufsizeバッファの大きさを指定します.
[in]x文字列に変換したい浮動小数点数を指定します.

◆ spFtos()

void spFtos ( char * buf,
double x )
extern

浮動小数点数を,文字列に変換します.

引数
[out]buf変換後の文字列をコピーするバッファを指定します.
[in]x文字列に変換したい浮動小数点数を指定します.

◆ spNextPow2()

long spNextPow2 ( long n)
extern

n よりも大きく、かつ最小の2のべき乗の指数を計算します.例えば,n が100であれば,7となります. 2の7乗が128で,100よりも大きく,かつ最小の2のべき乗であるためです.

戻り値
n よりも大きく、かつ最小の2のべき乗の指数が返ります.

◆ spGetBitByte()

int spGetBitByte ( int samp_bit,
spBool * float_flag )
extern

spBaseで使われる量子化ビット数の数字からバイト数を取得します.

引数
[in]samp_bit量子化ビット数を指定します.33は,32ビット浮動小数点数を表します.
[out]float_flag浮動小数点数の場合に,このポインタの示す先の値がSP_TRUEになります. 具体的には,samp_bitが33と64のときにSP_TRUEになります.
戻り値
バイト数が返ります.

◆ spGetBitNormalizeFactor()

double spGetBitNormalizeFactor ( int samp_bit)
extern

spBaseで使われる量子化ビット数の数字から正規化係数を取得します.

引数
[in]samp_bit量子化ビット数を指定します.33は,32ビット浮動小数点数を表します.
戻り値
正規化係数が返ります.例えば, samp_bit が16であれば,32768が返ります. 浮動小数点数(samp_bit が33または64)の場合は1.0となります.