• snmpEngineBoots & snmpEngineID数据存储到非易失性存储设备


    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    int regenerateID()
    {
        return 10;
    }
    
    int read_snmpEngine_file(char* file_name, int* snmpEngineBoots, int* snmpEngineID)
    {
        FILE* fp;
        fp = fopen(file_name, "r");
        fscanf(fp, "%d, %d", snmpEngineBoots, snmpEngineID);
        fclose(fp);
        return 0;
    }
    
    int update_snmpEngine_file(char* file_name, int* snmpEngineBoots, int* snmpEngineID)
    {
        FILE* fp;
        fp = fopen(file_name, "w+");
        fprintf(fp, "%d, %d", *snmpEngineBoots + 1, *snmpEngineID);
        fclose(fp);
    }
    
    int get_snmpEngine_data(char* file_name, int* snmpEngineBoots, int* snmpEngineID)
    {
        FILE* fp;
        fp = fopen(file_name, "r");
        if(fp == NULL)
        {
            *snmpEngineBoots = 0;
            *snmpEngineID = regenerateID();
        }
        else
        {        
            fclose(fp);
            read_snmpEngine_file(file_name, snmpEngineBoots, snmpEngineID);
        }
        remove(file_name);
        update_snmpEngine_file(file_name, snmpEngineBoots, snmpEngineID);
        return 0;
    }
    
    int main()
    {
        char* file_name = "snmp_engine.cfg";
        int snmpEngineID = 0, snmpEngineBoots = 0;
        get_snmpEngine_data(file_name, &snmpEngineBoots, &snmpEngineID);
        printf("%d %d
    ", snmpEngineBoots, snmpEngineID);
        
    }
  • 相关阅读:
    threadlocal 变量 跟synchronized 关键字的关系
    Android媒体扫描详细解析之一(MediaScanner & MediaProvider)
    创建视图全文搜索[完整版]
    海量小文件问题综述
    内存拷贝探究
    case功能菜单选项
    linux case ${variable} in
    attack source code
    ftps加密服务器
    vim编程设置
  • 原文地址:https://www.cnblogs.com/liuyang92/p/6793101.html
Copyright © 2020-2023  润新知