mcm_lulib_check_store_file
檢查資料檔案是否有錯誤.
| 參數 |
說明 |
struct mcm_lulib_lib_t *
this_lulib
|
紀錄 mcm_lulib_api 所需要的資料
|
char *
file_path
|
要檢查的資料檔案的路徑
絕對路徑或是相對於 mcm_daemon 所在位置的相對路徑
|
MCM_DTYPE_LIST_TD *
store_result_buf
|
紀錄資料檔案的檢查結果的緩衝
>= MCM_RCODE_PASS : 資料檔案正常
< MCM_RCODE_PASS : 資料檔案損毀
|
char *
store_version_buf
|
紀錄資料檔案內的版本資訊的值的緩衝 [詳細]
|
MCM_DTYPE_USIZE_TD
store_version_size
|
紀錄資料檔案內的版本資訊的值的緩衝的大小
|
| 回傳 |
說明 |
| >= MCM_RCODE_PASS |
成功 |
| < MCM_RCODE_PASS |
錯誤 |
注意事項 :
| 01. |
資料存取模式可以是 MCM_SPERMISSION_RO 或 MCM_SPERMISSION_RW.
|
範例 :
資料值檔案, 放在 mcm_daemon 所在的目錄, 檔名為 mcm_store_upload.txt
$version 1.1
device descript:Wireless%20Device serial_number:0022E5A1CC9F00000000
device.system date:2015/06/07 ip_addr:192.168.10.254 uptime:0 loading:45.678000
device.vap.#8 ssid:open-1 channel:10
device.vap.#8.extra hidden:1 tx_power:9
device.vap.#8.station.#20 mac_addr:00:11:22:33:44:55 rule:3
device.vap.#15 ssid:radius-2 channel:44
device.vap.#15.extra hidden:0 tx_power:10
device.vap.#15.station.#30 mac_addr:00:aa:bb:cc:dd:ee rule:5
device.vap.#15.station.#33 mac_addr:00:aa:bb:cc:dd:ff rule:6
device.vap.#23 ssid:wap2-3 channel:0
device.vap.#23.extra hidden:0 tx_power:3
device.limit.#3 name:normal priority:10
device.limit.#5 name:height priority:15
device.limit.#6 name:low priority:5
外部程式
#include <errno.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "mcm_lib/mcm_lheader/mcm_type.h"
#include "mcm_lib/mcm_lheader/mcm_size.h"
#include "mcm_lib/mcm_lheader/mcm_connect.h"
#include "mcm_lib/mcm_lheader/mcm_return.h"
#include "mcm_lib/mcm_lheader/mcm_data_exinfo_auto.h"
#include "mcm_lib/mcm_lulib/mcm_lulib_api.h"
#define DMSG(msg_fmt, msgs...) printf("%s(%04u): " msg_fmt "\n", __FILE__, __LINE__, ##msgs)
int main(
int argc,
char **argv)
{
char *path1, store_version[MCM_BASE_VERSION_BUFFER_SIZE];
struct mcm_lulib_lib_t self_lulib;
MCM_DTYPE_LIST_TD store_result;
self_lulib.socket_path = "@mintcm";
self_lulib.call_from = MCM_CFROM_USER;
self_lulib.session_permission = MCM_SPERMISSION_RO;
self_lulib.session_stack_size = 0;
if(mcm_lulib_init(&self_lulib) < MCM_RCODE_PASS)
{
DMSG("call mcm_lulib_init() fail");
goto FREE_01;
}
path1 = "mcm_store_upload.txt";
if(mcm_lulib_check_store_file(&self_lulib, path1, &store_result,
store_version, sizeof(store_version)) < MCM_RCODE_PASS)
{
DMSG("call mcm_lulib_check_store_file(%s) fail", path1);
goto FREE_02;
}
DMSG("[%s][%s][%s]", path1, store_version, store_result < MCM_RCODE_PASS ? "fail" : "pass");
FREE_02:
mcm_lulib_exit(&self_lulib);
FREE_01:
return 0;
}
|