Glib을 사용하는 데 문제가 있습니다. g_main_loop_run으로 메인 루프를 시작하지 않고 dbus 신호를 구독하고 싶습니다.메인 루프가없는 GLIB 사용
올바른 버스에 대한 연결을 만들고 g_dbus_connection_signal_subscribe을 호출하십시오.
주 기능의 전화 번호는 g_main_loop_run으로 while (1)로 바뀌 었습니다.
불행히도, 작동하지 않습니다. GLib을 정확하게 이해하면, 그러한 치료를 위해 메인 루프를 열 필요가 없습니다.
도와주세요.
샘플 코드 : 나는 올바르게 입심을 이해한다면
session_bus = g_bus_get_sync(G_BUS_TYPE_SESSION,
NULL,
NULL);
g_dbus_connection_signal_subscribe(session_bus,
"org.freedesktop.Notifications",
"org.freedesktop.Notifications",
"NotificationClosed",
"/org/freedesktop/Notifications",
NULL,
G_DBUS_SIGNAL_FLAGS_NONE,
(GDBusSignalCallback) onNotifClosed,
NULL,
NULL);
loop = g_main_loop_new(NULL, FALSE);
g_main_loop_run(loop);
g_main_loop_unref(loop);
g_object_unref(session_bus);
"메인 루프를 시작할 필요가 없습니다"- 반대로 작동시킬 수있는 유일한 방법은 메인 루프를 실행하는 것입니다. – ptomato