Я работаю над старым встроенным кодом, который использует устаревшую библиотеку dbus-glib.g_bus_get_sync возвращает NULL, но dbus_g_bus_get_private работает
В унаследованного кода, этот фрагмент кода работает хорошо:
GError* error = NULL;
DBusGConnection *systemBus = dbus_g_bus_get_private(DBUS_BUS_SYSTEM, NULL, &error);
Теперь, я попытался получить системную шину с эквивалентом GDBus:
GError* error = NULL;
GDBusConnection *systemBus = g_bus_get_sync(G_BUS_TYPE_SYSTEM, NULL, &error);
Это терпит неудачу, и error->message
возвращается Could not connect: No such file or directory
.
В чем разница?
Кстати, тот же вызов работает на шине сессии:
GError* error = NULL;
DBusConnection *sessionBus = g_bus_get_sync(G_BUS_TYPE_SESSION, NULL, &error);