void SavePlStic(void) { sysclock_t clock; int i = 0; char filename[32]; printf("SavePlStic...\n"); PrintLog(0, "SavePlStic...\n"); sprintf(filename,"/home/nandflash/data/plsticinfo"); SysClockReadCurrent(&clock);//读系统时间 if(ReadBinFile(filename, PLMDB_MAGIC, (unsigned char *)&pl_read_meter_stic, sizeof(pl_read_meter_stic)) > 0) { PrintLog(0, "ReadBinFileSucc...\n"); } else { PrintLog(0, "ReadBinFileFail...\n"); } i = clock.day; if(i < 1 || i > 31) return; pl_read_meter_stic[i - 1].read_meter_succ_cnt = check_read_meter_succ_cnt(); pl_read_meter_stic[i - 1].read_meter_prd = check_read_meter_succ_cnt()*100/(meter_total_cnt - cen_meter_cnt); LOCK_PLMDB; system("rm -r -f /home/nandflash/data/plsticinfo"); SaveBinFile(filename, PLMDB_MAGIC, (unsigned char *)&pl_read_meter_stic,sizeof(pl_read_meter_stic)); UNLOCK_PLMDB; }
int AlarmInit(void) { int idx, offset; char filename[32]; alarm_t *pbuf; memset(AlarmBufferImportant, 0, sizeof(AlarmBufferImportant)); memset(AlarmBufferNormal, 0, sizeof(AlarmBufferNormal)); for(idx=0; idx<2; idx++) { if(0 == idx) pbuf = AlarmBufferImportant; else pbuf = AlarmBufferNormal; DebugPrint(0, " load "); for(offset=0; offset<256; offset+=ALMNUM_PERFILE,pbuf+=ALMNUM_PERFILE) { AlarmFileName(idx, offset, filename); DebugPrint(0, "%c%d", (idx)?'n':'i', offset/ALMNUM_PERFILE); if(ReadBinFile(filename, ALARM_MAGIC, (unsigned char *)pbuf, sizeof(alarm_t)*ALMNUM_PERFILE) > 0) { DebugPrint(0, " ok, "); } else { DebugPrint(0, " fail, "); } } DebugPrint(0, "\n"); } LockIdAlarm = RegisterSysLock(); SET_INIT_FLAG(AlarmInit); return 0; }
/** * @brief 从文件中载入综合参数 * @return 0成功, 否则失败 */ int LoadParaMix(void) { LoadDefParaMix(); DebugPrint(0, " load param mix...(size=%d)", sizeof(ParaMixSave)+12); if(ReadBinFile(PARAM_SAVE_PATH "mix.bin", MIX_MAGIC, (unsigned char *)&ParaMixSave, sizeof(ParaMixSave)) < 0) { DebugPrint(0, "no main, "); if(ReadBinFile(PARAM_BAK_PATH "mix.bin", MIX_MAGIC, (unsigned char *)&ParaMixSave, sizeof(ParaMixSave)) < 0) DebugPrint(0, "no bak\n"); return 1; } DebugPrint(0, "ok\n"); return 0; }
void TestDeviceCode() { char filename[200] = {0}; sprintf(filename,"/bin/udevcode"); unsigned char devicecode[16]; unsigned char number[4]; if(ReadBinFile(filename, UUID_MAGIC, devicecode, 16) > 0) { DebugPrint(0, "Read UUID ok, \n uuid :"); PrintHexLog(0, devicecode, 16); } else { DebugPrint(0, "Read UUID fail, "); } }
int main(int argc, const char * argv[]) { if (argc < 5) { printf("!!!Error: Not enough arguments. <first_long_number_filename> [ + | - | * | / | % | ^ ] <second_long_number_filename> <result_long_number_filename>!!!\n"); return 0; } if (argc > 7) { printf("!!!Error: Many arguments. <first_long_number_filename> [ + | - | * | / | % | ^ ] <second_long_number_filename> <result_long_number_filename> <module_long_number_filename> <-b>!!!\n"); return 0; } FILE* firstLongNumFile = fopen(argv[1], "r"); if (!firstLongNumFile) //проверка открытия первого файла с числом { printf("!!!Error: Unable to open file: %s !!!\n", argv[1]); return 0; } fclose(firstLongNumFile); const char* operation = argv[2]; if ((strlen(operation) > 1 || operation[0] == '\0') || operation[0] != '+' && operation[0] != '-' && operation[0] != '*' && operation[0] != '/' && operation[0] != '%' && operation[0] != '^') //проверка оператора { printf("!!!Error: Wrong operation: %s !!!\n", operation); return 0; } FILE* secondLongNumFile = fopen(argv[3], "r"); //проверка открытия второго файла с числом if (!secondLongNumFile) { printf("!!!Error: Unable to open file: %s !!!\n", argv[3]); return 0; } fclose(secondLongNumFile); FILE* resultLongNumFile = fopen(argv[4], "r"); if (!resultLongNumFile) //проверка открытия файла для результата { printf("!!!Error: Unable to open file: %s !!!\n", argv[4]); return 0; } fclose(resultLongNumFile); //////////////////////////////////////////////////////////////////////////////// int bin = 0; //флаг для бинарного файла if (argc == 5) if (argv[2][0] == '^') { printf("!!!Error: Input module file!!!\n"); return 0; } if (argc == 6) { if (argv[2][0] == '^') { FILE* moduleLongNumFile = fopen(argv[5], "r"); if (!moduleLongNumFile) { printf("!!!Error: Unable to open file: %s !!!\n", argv[5]); return 0; } fclose(moduleLongNumFile); } else { if (strcmp(argv[5], "-b")) { printf("!!!Error: Invalid flag: %s !!!\n", argv[5]); return 0; } bin = 1; } } if (argc == 7) { FILE* moduleLongNumFile = fopen(argv[5], "r"); if (!moduleLongNumFile) { printf("!!!Error: Unable to open file: %s !!!\n", argv[5]); return 0; } fclose(moduleLongNumFile); if (strcmp(argv[6], "-b")) { printf("!!!Error: Invalid flag: %s !!!\n", argv[6]); return 0; } bin = 1; } struct LongNumber a, b; //загружаем первое число из бинарного файла if (bin == 1) a = ReadBinFile(argv[1]); else a = ReadTextFile(argv[1]); //загружаем второе число из бинарного файла if (bin == 1) b = ReadBinFile(argv[3]); else b = ReadTextFile(argv[3]); //выполняем операцию struct LongNumber result; switch (operation[0]) { case '+': { result = ADD(a, b); break; } case '-': { result = SUB(a, b); break; } case '*': { result = MUL(a, b); break; } case '/': { result = DIV(a, b, 1); break; } case '%': { result = DIV(a, b, 2); break; } case '^': { struct LongNumber c; if (bin == 1) c = ReadBinFile(argv[5]); else c = ReadTextFile(argv[5]); result = DEGREE(a, b, c); c = clear(c); break; } default: break; } //записываем в файл результат if (bin == 1) WriteBinFile(argv[4], result); else WriteTextFile(argv[4], result); a = clear(a); b = clear(b); result = clear(result); return 0; }
void ClassLN::ReadBin(const char* filename) { ClassLN res; res.num = ReadBinFile(filename); *this = res; }