- UID
- 981219
- 在线时间
- 0 小时
- 最后登录
- 1970-1-1
- 注册时间
- 2015-1-10
- 宅魂
- 257 点
- 贡献
- 36 点
- 宅币
- 1089 枚
- 灵石
- 0 块
- 元气(技能点)
- 1 点
- 活跃
- 0 ℃
- 听众
- 7
- 收听
- 0
该用户从未签到
Continue
- 积分
- 2018
|
本帖最后由 樱花流逝 于 2016-1-26 22:41 编辑
代码是这样的
[mw_shl_code=c,true]#include<stdio.h>
#include<glib.h>
#include<dbus/dbus-glib-lowlevel.h>
static gboolean send_ding(DBusConnection *bus);
int main(){
GMainLoop* loop;
DBusConnection *bus;
DBusError error;
loop=g_main_loop_new(NULL,FALSE);
dbus_error_init(&error);
bus=dbus_bus_get(DBUS_BUS_SESSION,&error);
if(!bus){
g_warning("connecting failure to D-bus: %s",error.message);
dbus_error_free(&error);
return 1;
}
dbus_connection_setup_with_g_main(bus,NULL);
g_timeout_add(1000,(GSourceFunc)send_ding,bus);
g_main_loop_run(loop);
return 0;
}
static gboolean send_ding(DBusConnection *bus){
DBusMessage *message;
message=dbus_message_new_signal("/com/burtonini/dbus/ding",
"com.burtonini.dbus.Signal",
"ding");
dbus_message_append_args(message,
DBUS_TYPE_STRING,"ding!",
DBUS_TYPE_INVALID);
dbus_connection_send(bus,message,NULL);
dbus_message_unref(message);
g_print("ding!\n");
return 0;
}[/mw_shl_code]
编译命令是这样的
gcc `pkg-config --cflags --libs dbus-glib-1` -g -o send dbus-ding-send.c
但是运行时终端显示“段错误”并直接退出了
用gdb调试时结果是这样的
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Program received signal SIGSEGV, Segmentation fault.
strlen () at ../sysdeps/x86_64/strlen.S:106
106 ../sysdeps/x86_64/strlen.S:没有那个文件或目录
然而还是不知道错在哪orz
求解答
|
|