std::ifstream создет каталог, а не файл, при использовании совместно с gtk+

Дорогие форумчане!

Пишу программу с использование gtk+. У нее должен быть файл с настройками. Чтобы понять, необходимо ли создавать этот файл есть bool функция, которая его ищет( обычный std::ifstream.is_open()). Сама по себе функция делает все корректно, но при её связке с gtk, происходит что-то непонятное : во-первых создается каталог с именем искомого файла, а во-вторых это каталог, а не файл.

Использую ArchLinux.

Заранее спасибо!

В main вызывается функция app_init

int app_init(int *argc, char ***argv){
    gtk_init(argc, argv);
    if(!(search_cfg())){
        start_setup();
    }
    return 0;
}

Вот как реализована функция поиска :

bool search_cfg(){
    std::ifstream cfg(CFG_PATH);
    return cfg.is_open();
}

CFG_PATH = strcat(getenv("HOME"),"/.config/marshmallow_gif.txt")

Функция start_setup :

void start_setup(){
    GtkWidget *window = create_window();
    g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(gtk_main_quit), NULL);
    gtk_widget_show(window);
    gtk_main();
}

И, наконец, функция create_window :

static GtkWidget * create_window(){
    GtkWidget * setup_win;
    GtkBuilder * setup_win_builder;
    GError * err_msg = NULL;
    setup_win_builder = gtk_builder_new();
    if(!(gtk_builder_add_from_file(setup_win_builder, START_SETUP_FORM, &err_msg))){
        g_critical("Unable to load form file %s", err_msg->message);
        g_error_free(err_msg);
        exit(10);
    }
    gtk_builder_connect_signals(setup_win_builder, NULL);
    setup_win = GTK_WIDGET(gtk_builder_get_object(setup_win_builder, "setup_win"));
    if(!(setup_win)){
        g_critical("Unable to load window");
        exit(11);
    }
    g_object_unref(setup_win_builder);
    gtk_container_set_border_width(GTK_CONTAINER(setup_win), 7);
    return setup_win;
}

Если вызывать функции search_cfg и start_setup по-отдельности, то ничего не происходит(как и должно), но при их связке создается каталог с другими каталогами и файлами.

marshmallow_gif.txt
|
----.cache
|   |
|   ----event-sound-cache.tdb.a60336117c724b1dbbb14ce6079fc821.x86_64-pc-linux-gnu 
----pulse
    |
    ----cookie

Заранее благодарю за решение!


Ответы (0 шт):