34#define CONFIG_LINE_MAX 1024
48 fp = fopen(configpath,
"r");
50 fopen_s(&fp, configpath,
"r");
57 while (fgets(line,
sizeof(line), fp) != NULL)
60 comment = strchr(line,
'#');
68 if (sscanf(line,
"%255s %255s %255s", func_key, lib_name, func_name) != 3)
70 if (sscanf_s(line,
"%255s %255s %255s",
71 func_key, (
unsigned)
sizeof(func_key),
72 lib_name, (
unsigned)
sizeof(lib_name),
73 func_name, (
unsigned)
sizeof(func_name)) != 3)
81 for (fobj_index = 0; fobj_index < fobj_length; fobj_index++)
関数動的呼び出し機構 (funcman) の公開 API ヘッダー。
#define FUNCMAN_NAME_MAX
lib_name / func_name 配列の最大長 (終端 '\0' を含む)。
#define CONFIG_LINE_MAX
fgets で読み込む行バッファの最大長
void funcman_init(funcman_object *const *fobj_array, const size_t fobj_length, const char *configpath)
funcman_object ポインタ配列を初期化します。
char func_name[FUNCMAN_NAME_MAX]
関数シンボル名。[0]=='\0' = 未設定。
char lib_name[FUNCMAN_NAME_MAX]
拡張子なしライブラリ名。[0]=='\0' = 未設定。
const char * func_key
この関数インスタンスの識別キー。