Add an option under a specific section using UCI&#

2019-09-19 03:30发布

How can I add a NEW option under a specific section in an UCI config file? I would like to achieve that programmatically using the C API. Can someone put an example here ?

标签: c openwrt luci
1条回答
Emotional °昔
2楼-- · 2019-09-19 04:07
#include <uci.h>
#include <stdio.h>

int main() {
    uci_context* ctx = uci_alloc_context();

    if (!ctx) {
        printf("failed to alloc uci ctx\n");
        return 1;
    }

    uci_ptr config;
    char section_name[] = "your_package.your_section";

    if (uci_lookup_ptr(ctx, &config, section_name, true) != UCI_OK || !config.s) {
        printf("failed to find the specified section\n");
        return 1;
    }

    config.option = "new_option_name";
    config.value = "new_option_value";

    if (uci_set(ctx, &config) != UCI_OK) {
        printf("failed to set new option\n");
        return 1;
    }

    if (uci_commit(ctx, &config.p, false) != UCI_OK) {
        printf("failed to commit changes\n");
        return 1;
    }

    return 0;
}
查看更多
登录 后发表回答