cmn-clib(CommonLibraryForC)
C言語共通ライブラリ
 全て データ構造 ファイル 関数 変数 型定義 列挙型 列挙値 マクロ定義
CmnFile.c ファイル

ファイル操作共通関数群 [詳解]

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "cmnclib/Common.h"
#include "cmnclib/CmnFile.h"
#include "cmnclib/CmnData.h"
#include "cmnclib/CmnLog.h"
#include <dirent.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <limits.h>

マクロ定義

#define BUF_SIZE   4096
 
#define MAX_PATH_SIZE   2048
 

関数

CmnStringBufferCmnFile_ReadAllText (const char *filePath, CmnStringBuffer *buf)
 ファイルをテキストデータとして全て読み込む [詳解]
 
CmnDataBufferCmnFile_ReadAll (const char *filePath, CmnDataBuffer *buf)
 ファイルを全て読み込む [詳解]
 
int CmnFile_WriteNew (const char *filePath, void *data, size_t len)
 データをファイルに書き込む。ファイルがなければ新規作成。ファイルがあれば上書き。 [詳解]
 
int CmnFile_WriteHead (const char *filePath, void *data, size_t len)
 データをファイルの先頭に追加する。ファイルがなければ新規作成。 [詳解]
 
int CmnFile_WriteTail (const char *filePath, void *data, size_t len)
 データをファイルの末尾に追加する。ファイルがなければ新規作成。 [詳解]
 
int CmnFile_Remove (const char *path)
 ファイルを削除する [詳解]
 
CmnDataListCmnFile_List (const char *path, CmnDataList *list, CHARSET pathCharset)
 path直下のファイル/ディレクトリ一覧を取得する。 [詳解]
 
char * CmnFile_ToAbsolutePath (const char *path, char *buf, size_t buflen, CHARSET pathCharset)
 絶対パスを取得する [詳解]
 
char * CmnFile_GetCurrentDirectory (char *buf, size_t buflen)
 カレントディレクトリを取得する [詳解]
 
int CmnFile_Exists (const char *path)
 pathが実在するかチェックする [詳解]
 
CmnFileInfoCmnFile_GetFileInfo (const char *path, CmnFileInfo *info)
 ファイル情報を取得する [詳解]
 
char * CmnFileInfo_ToString (const CmnFileInfo *info, char *buf)
 

詳解

ファイル操作共通関数群

ファイル操作共通関数群

著者
H.Kumagai

関数詳解

int CmnFile_Exists ( const char *  path)

pathが実在するかチェックする

引数
path実在するかチェックするパス。ディレクトリでもファイルでもOK
戻り値
pathが存在する場合はTrue、存在しない場合はFalseを返す
char* CmnFile_GetCurrentDirectory ( char *  buf,
size_t  buflen 
)

カレントディレクトリを取得する

引数
bufカレントディレクトリを格納するバッファ
buflenbufのサイズ
戻り値
bufへのポインタ。取得に失敗した場合はNULLを返す。
CmnFileInfo* CmnFile_GetFileInfo ( const char *  path,
CmnFileInfo info 
)

ファイル情報を取得する

引数
pathファイルパス
info取得したファイル情報を格納する
戻り値
infoを返す。ファイル情報の取得に失敗した場合はNULLを返す。
CmnDataList* CmnFile_List ( const char *  path,
CmnDataList list,
CHARSET  pathCharset 
)

path直下のファイル/ディレクトリ一覧を取得する。

引数
pathファイル/ディレクトリ一覧を取得するパス
listファイル/ディレクトリ一覧を格納するリストオブジェクト。リストの要素にはCmnFileInfoをセットする。
戻り値
listを返す。pathが無効な場合など一覧の取得に失敗した場合はNULLを返す。
CmnDataBuffer* CmnFile_ReadAll ( const char *  filePath,
CmnDataBuffer buf 
)

ファイルを全て読み込む

ファイルから読み込んだデータをコピーして返却する。
返却したポインタは呼び出し側でCmnDataBuffer_Freeで解放すること。

引数
filePathファイルパス
buf読み込んだデータを格納するバッファ
戻り値
読み込んだデータ。読み込みに失敗した場合はNULLを返却する。
CmnStringBuffer* CmnFile_ReadAllText ( const char *  filePath,
CmnStringBuffer buf 
)

ファイルをテキストデータとして全て読み込む

ファイルから読み込んだデータをbufにコピーして返却する。
ファイルはバイナリモードで読み込む。改行コードの変換が必要であれば呼び出し側で行うこと。

引数
filePathファイルパス
buf読み込んだデータを格納する文字列バッファ
戻り値
読み込みに成功した場合はbufを返す。失敗した場合はNULLを返却する。
int CmnFile_Remove ( const char *  path)

ファイルを削除する

引数
filePath削除するファイル
戻り値
True:削除成功、False:削除失敗
char* CmnFile_ToAbsolutePath ( const char *  path,
char *  buf,
size_t  buflen,
CHARSET  pathCharset 
)

絶対パスを取得する

引数
path絶対パスに変換するパス
buf取得した絶対パスを格納するバッファ
buflenbufの長さ
pathCharsetパスの文字セット(ファイルシステムの文字セット)。Windowsの場合のみ必要。
戻り値
int CmnFile_WriteHead ( const char *  filePath,
void *  data,
size_t  len 
)

データをファイルの先頭に追加する。ファイルがなければ新規作成。

引数
filePathファイルパス
data書き込むデータ
戻り値
0:正常終了、-1:書き込み失敗
int CmnFile_WriteNew ( const char *  filePath,
void *  data,
size_t  len 
)

データをファイルに書き込む。ファイルがなければ新規作成。ファイルがあれば上書き。

引数
filePathファイルパス
data書き込むデータ
戻り値
0:正常終了、-1:書き込み失敗
int CmnFile_WriteTail ( const char *  filePath,
void *  data,
size_t  len 
)

データをファイルの末尾に追加する。ファイルがなければ新規作成。

引数
filePathファイルパス
data書き込むデータ
戻り値
0:正常終了、-1:書き込み失敗