Beispiel #1
0
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;
}
Beispiel #2
0
int shell_load(char **args)
{
    if (!args[1]) return MISSING_ARGS;

    if (file_to_memory(args[1])) {
        return OK;
    } else {
        return ELF_ERR;
    }

}