JZsdk_FileSystm.c 4.2 KB
#include <stdio.h>
#include "JZsdk_FileSystm.h"
#include <stdlib.h>
#include <stdbool.h>
#include <string.h>

#include "JZsdkLib.h"

/*
*       用于运行指令
*
*/
int JZsdk_RunSystemCmd(char *systemCmd)
{
    //FILE *fp;

    //printf("JZsdk_RunSystemCmd:%s\n",systemCmd);

    // fp = popen(systemCmd, "r");
    // if (fp == NULL) {
    //     return -1;
    // }

    int status = system(systemCmd);
    if (status == -1 || WIFEXITED(status) == false) {
        printf("Call %s error, status = %d\n", systemCmd, status);
        return -1;
    }

    if (WEXITSTATUS(status) == 0) {
        printf("指令执行成功%s\n",systemCmd);
        return 0;
    } else {
        printf("Exit status is = %d", WEXITSTATUS(status));
        return -2;
    }
    //pclose(fp);

    return 0;
}

/*

    运行命令 并读取返回值

*/
// FILE* JZsdk_RunSystemCmd_ReturnFilePointer(char *systemCmd)
// {
//     FILE *fp;

//     fp = popen(systemCmd, "r");

//     pclose(fp);

//     return fp;
// }


int JZsdk_Socket()
{
    
}

//获取设备序列号
T_JZsdkReturnCode GetSerialNumber(char *SerialNumber)
{
	FILE *num_file;
    char num_char[128];
    memset(num_char,0,sizeof(num_char));    

	num_file = fopen("/root/num", "rb+");
    if (num_file == NULL) 
    {
        num_file = fopen("/root/num", "wb+");
        if (num_file == NULL) 
        {
            //无序列号
            memcpy(SerialNumber, "无", sizeof("无"));
            fclose(num_file);
            return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
        }
    } 
    else 
    {
        int ret = fseek(num_file, 0, SEEK_SET);
        if (ret != 0) {
            printf("Seek log count file error, ret: %d.\r\n", ret);
        }

        ret = fread((char *) &num_char,1, 16, num_file);
        if (ret == 0) 
        {
            JZSDK_LOG_ERROR("读取序列号失败");
            //无序列号
            memcpy(SerialNumber, "无", sizeof("无"));
            fclose(num_file);
            return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
        }
		else{
			JZSDK_LOG_INFO("Read num file=%s\n",&num_char);
        }
		
    }
    

	if (SerialNumber != NULL)
	{
		memcpy(SerialNumber, num_char, 14);
        return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
	}
    
    fclose(num_file);
    return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
}	

/**********************************
 * 
 *  文件是否存在判断函数
*   判断文件是否存在
    函数名:JZsdk_check_file_exists
    参数:文件路径
    返回值:JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS表示文件存在,
    JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE表示文件不存在
 * *******************************/
T_JZsdkReturnCode JZsdk_check_file_exists(const char* file_path) 
{
    FILE* file = fopen(file_path, "r");
    if (file != NULL) 
    {
        fclose(file);
        return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
    }
    return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
}

/**********************************
 * 
 *  创建新的文件
    函数名:JZsdk_check_file_exists
    参数:文件路径
    返回值:JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS表示文件存在,
    JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE表示文件不存在
 * *******************************/
T_JZsdkReturnCode JZsdk_create_file(const char* file_path) 
{
    FILE* file = fopen(file_path, "w");
    if (file != NULL) 
    {
        fclose(file);
        return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
    }
    return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
}

/**********************************
 * 
 *  删除文件
    函数名:JZsdk_delete_file
    参数:文件路径
    返回值:JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS表示文件已经不存在
    JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE表示文件仍然存在
 * *******************************/
T_JZsdkReturnCode JZsdk_delete_file(const char* file_path) 
{
    remove(file_path);
    T_JZsdkReturnCode ret = JZsdk_check_file_exists(file_path);
    if (ret == JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
    {
        return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
    }
    
    return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
}