我試圖通過下面的代碼在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過程中,您是否嘗試重新註冊與您已在父級中註冊過相同的事件,或者您是否嘗試首次註冊事件? –