int write_conf_value(const char *key, char *value, const char *file) { int i = 0, j = 0; int num = 0; FILE *fp = NULL; item_t items[MAX_ITEMS_NUM]; int flag = 0; if (key == NULL || value == NULL || file == NULL) { printf("params error!\n"); return -1; } num = file_to_memory(file, items, MAX_ITEMS_NUM); if (num < 0) { return -1; } for (i = 0; i < num; i++) { if (items[i].key != NULL && items[i].value != NULL) { if (!strcmp(items[i].key, key)) { strcpy(items[i].value, value); flag = 1; break; } } } fp = fopen(file, "w"); if (fp == NULL) { return -1; } for (i = 0; i < num; i++) { if (items[i].comment != NULL) { fprintf(fp, "\n"); for (j = 0; j < items[i].num; j++) { if (items[i].comment[j] != NULL) fprintf(fp, "%s\n", items[i].comment[j]); } fprintf(fp, "\n"); } if (items[i].key != NULL && items[i].value != NULL) fprintf(fp, "%s=%s\n", items[i].key, items[i].value); } if (flag == 0) { fprintf(fp, "%s=%s\n", key, value); } for (i = 0; i < num; i++) { free_item_space(&items[i]); } fclose(fp); fp = NULL; return 0; }
int shell_load(char **args) { if (!args[1]) return MISSING_ARGS; if (file_to_memory(args[1])) { return OK; } else { return ELF_ERR; } }