我试图通过下面的代码在MAC OS X 10.7(狮子)注册NETWORK_CHANGE事件失败:网络变更事件注册在MAC OS X 10.7(狮子)
#define kNotifySCNetworkChange "com.apple.system.config.network_change"
void init()
{
status = notify_register_check(kNotifySCNetworkChange, &token);
if (status != NOTIFY_STATUS_OK)
{
cout << "Event Registration failed" <<endl;
}
cout << "Event Registration Success" << endl;
}
.....
如果我在示例程序中使用此代码,它已成功注册。 如果我在我的应用程序中使用此函数,notify_register_check()函数返回状态 1000000(NOTIFY_STATUS_FAILED)。此外,返回的错误号是0
注:我的应用程序工作在Leopard和Snow Leopard有任何问题(注册成功)
我用Google搜索这个状态,但未能找到相关信息。 任何人都可以告诉我在这种情况下这个NOTIFY_STATUS_FAILED返回?
还有一件事我最近观察到: 我们使用fork()的系统调用我的应用程序。 当我尝试在父进程中注册时,事件注册成功。但子进程中的事件注册失败。为什么它在儿童进程中失败?任何想法!!!
因此,调用在控制台应用程序中工作,但不在GUI应用程序中? – trojanfoe
嗨@trojanfoe,感谢您的快速回复。我的应用程序不是一个GUI应用程序。 – Rajasekhar
在fork()ed过程中,您是否尝试重新注册与您已在父级中注册过相同的事件,或者您是否尝试首次注册事件? –