我尝试通过以下代码在 MAC OS X 10.7 (lion) 中注册 network_change 事件:
#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)。此外,返回的 errno 为 0。
注意:我的应用程序在 Leopard 和 Snow Leopard 中运行没有任何问题(注册成功)
我用谷歌搜索了这个状态,但找不到相关信息。谁能告诉我这个 NOTIFY_STATUS_FAILED 在哪些情况下返回?
我最近观察到的另一件事是:我们在我的应用程序中使用了fork()系统调用。当我尝试在父进程中注册时,事件注册成功。但是子进程中的事件注册失败。为什么它在子进程中失败???任何想法!!!