![]() |
GL CHOCO ENGINE
|
ファイルシステムモジュールAPIの提供 More...
#include <stddef.h>

Go to the source code of this file.
Typedefs | |
| typedef struct filesystem | filesystem_t |
| ファイルシステムモジュール内部状態管理構造体前方宣言(内部データ構造は外部非公開) | |
Functions | |
| filesystem_result_t | filesystem_create (filesystem_t **filesystem_) |
| filesystem_t構造体インスタンスを生成し、初期化する | |
| void | filesystem_destroy (filesystem_t **filesystem_) |
| filesystem_が管理しているメモリと自身のメモリを解放し、*filesystem_=NULLにする | |
| filesystem_result_t | filesystem_open (filesystem_t *filesystem_, const char *fullpath_, filesystem_open_mode_t mode_) |
| filesystem_が保持するファイルハンドルをオープンする | |
| filesystem_result_t | filesystem_close (filesystem_t *filesystem_) |
| filesystem_が保持するファイルハンドルをクローズする | |
| filesystem_result_t | filesystem_byte_read (filesystem_t *filesystem_, size_t read_bytes_, size_t *result_n_, char *buffer_) |
| ファイルからバイト単位でデータを読み込む | |
| const char * | filesystem_open_mode_c_str (filesystem_open_mode_t mode_) |
| ファイルオープンモードを文字列に変換する | |
ファイルシステムモジュールAPIの提供
ファイルシステムモジュールは、ファイルI/Oについて最も基本的なAPIを提供する。 そのため、1行単位の読み込みや、ファイル全体の読み込みといった処理は提供しない。 これらの処理には可変長文字列バッファのリソース管理が必要で、choco_stringモジュールを使用したい。 choco_stringモジュールを使用するとなると、containersレイヤーよりも上層にfilesystemを位置づける必要がある。 一方で、ファイルI/Oについての基本的な処理はcoreレイヤーに置きたい。このため、高度な処理と基本的な処理を分け、基本的な処理はcore/filesystemに置くことにする。 なお、高度な処理は、io_utils/fs_utils/fs_utilsに格納する。
| typedef struct filesystem filesystem_t |
ファイルシステムモジュール内部状態管理構造体前方宣言(内部データ構造は外部非公開)
ファイルオープンモードリスト
| enum filesystem_result_t |
ファイルシステムモジュールの実行結果コード定義
| filesystem_result_t filesystem_byte_read | ( | filesystem_t * | filesystem_, |
| size_t | read_bytes_, | ||
| size_t * | result_n_, | ||
| char * | buffer_ | ||
| ) |
ファイルからバイト単位でデータを読み込む
| filesystem_ | 読み込み対象ファイルハンドルを持つ構造体インスタンスへのポインタ |
| read_bytes_ | 読み込みバイト数 |
| result_n_ | 実際に読み込みに成功したバイト数 |
| buffer_ | データ格納先バッファ(バッファサイズはread_bytes_以上であること) |
| FILESYSTEM_INVALID_ARGUMENT | 以下のいずれか
|
| FILESYSTEM_RUNTIME_ERROR | 以下のいずれか
|
| FILESYSTEM_EOF | 読み込んだ結果EOFで読み取りバイト数ゼロ |
| FILESYSTEM_SUCCESS | 以下のいずれか
|
| filesystem_result_t filesystem_close | ( | filesystem_t * | filesystem_ | ) |
filesystem_が保持するファイルハンドルをクローズする
| filesystem_ | クローズ対象構造体インスタンスへのポインタ |
| FILESYSTEM_INVALID_ARGUMENT | filesystem_がNULL |
| FILESYSTEM_RUNTIME_ERROR | 既にクローズ済のファイルハンドルが渡された |
| FILESYSTEM_FILE_CLOSE_ERROR | ファイルハンドルのクローズに失敗 |
| FILESYSTEM_SUCCESS | ファイルハンドルのクローズに成功し、正常終了 |
| filesystem_result_t filesystem_create | ( | filesystem_t ** | filesystem_ | ) |
filesystem_t構造体インスタンスを生成し、初期化する
| filesystem_ | ファイルシステム内部状態管理構造体へのダブルポインタ |
| FILESYSTEM_INVALID_ARGUMENT | 以下のいずれか
|
| FILESYSTEM_NO_MEMORY | メモリ不足によりfilesystem_tのメモリ確保に失敗 |
| FILESYSTEM_LIMIT_EXCEEDED | メモリシステムの管理変数がシステム使用可能範囲を超過 |
| FILESYSTEM_UNDEFINED_ERROR | 未定義のエラーが発生 |
| FILESYSTEM_SUCCESS | filesystem_のメモリ確保と初期化に成功し、正常終了 |
| void filesystem_destroy | ( | filesystem_t ** | filesystem_ | ) |
filesystem_が管理しているメモリと自身のメモリを解放し、*filesystem_=NULLにする
| filesystem_ | メモリ解放対象構造体インスタンスへのダブルポインタ |
| filesystem_result_t filesystem_open | ( | filesystem_t * | filesystem_, |
| const char * | fullpath_, | ||
| filesystem_open_mode_t | mode_ | ||
| ) |
filesystem_が保持するファイルハンドルをオープンする
| filesystem_ | オープン対象ファイルシステムモジュール構造体インスタンスへのポインタ |
| fullpath_ | オープンするファイルのフルパス |
| mode_ | ファイルオープンモード filesystem_open_mode_t |
| FILESYSTEM_INVALID_ARGUMENT | 以下のいずれか
|
| FILESYSTEM_RUNTIME_ERROR | 既にオープン済のファイルハンドルが渡された |
| FILESYSTEM_FILE_OPEN_ERROR | ファイルオープン失敗 |
| FILESYSTEM_SUCCESS | ファイルオープンに成功し、正常終了 |
| const char * filesystem_open_mode_c_str | ( | filesystem_open_mode_t | mode_ | ) |
ファイルオープンモードを文字列に変換する
| mode_ | ファイルオープンモード |