回答
使用老好POSIX代碼:
#include <signal.h>
void SigPipeHandler(int s);
void SigPipeHandler(int s)
{
// do your handling
}
初始化在某些地方(main.m文件?)與
signal(SIGPIPE, SigPipeHandler);
嘗試設置SO_NOSIGPIPE如下記載: How to prevent SIGPIPEs (or handle them properly)
第一個答案不起作用。 另外我想使用第二個職位的參考解決方案:
int main(int argc, char *argv[ ]) {
struct sigaction mySigAction;
mySigAction.sa_handler = SIG_IGN;
sigemptyset(&mySigAction.sa_mask);
sigaction(SIGPIPE, &mySigAction, NULL);
...
}
但是這個代碼不工作過。有人知道這個問題的解決方案?
第一個答案正常。但你應該把所有的東西放在main.mm
文件中。
而且在static class(Singleton)
,它也有效。用於測試SigPipeHandler
#import <UIKit/UIKit.h>
#import <sys/signal.h>
#if TARGET_IPHONE_SIMULATOR
#endif
void SigPipeHandler(int s)
{
NSLog(@"We Got a Pipe Single :%d____________",s);
}
int main(int argc, char *argv[])
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
signal(SIGPIPE, SigPipeHandler);
int retVal = UIApplicationMain(argc, argv, nil, @"FullAppDelegate");
[pool release];
return retVal;
}
一個重要的事實:
對我來說,當調試器atached沒有奏效。所以當直接從XCode運行應用程序時,Handler不會被調用。 同時,在沒有附加調試器的設備上,處理程序按預期工作。
非常感謝你張貼這個答案!我觀察到這種相同的信號行爲在調試時沒有正確處理,但在調試時處理得很好......奇怪!無論如何,這最終幫助我意識到我的應用程序實際上在處理SIGPIPE,但我真正的問題是在處理完std:exception之後拋出,但後來在我的使用'@ try'' @ catch'的目標c代碼中沒有被捕獲。而不是C'try'' catch'塊。 – Sam 2012-01-16 18:14:26
我的sigpipe處理程序似乎也沒有被iOS模擬器調用。也許這只是我在xCode中進行了附加和調試,但我認爲它可能只是模擬器。 – 2015-02-06 17:34:59
- 1. 如何從iPhone應用程序捕捉視頻?
- 2. IPhone捕捉任何應用程序交互
- 3. iPhone Crash在發佈的應用程序上捕捉選項
- 4. 捕捉iPhone應用程序中的常規UI活動
- 5. 如何在iPhone中捕捉視頻
- 6. 如何捕捉Metro C#應用程序中的屏幕
- 7. 捕捉應用程序的所有KeyEvent
- 8. Android:捕捉應用程序出口
- 9. 如何使應用程序使用Flash捕捉視頻?
- 10. 如何捕捉用於啓動應用程序的意圖?
- 11. 如何捕捉任何程序的SIGSEGV?
- 12. 如何在iPhone應用程序中捕獲所有異常
- 13. 在Springboot應用程序中使用monad來捕捉異常
- 14. 如何捕捉64位應用程序堆棧損壞?
- 15. 如何捕捉URL並使用UIWebView在應用程序中呈現它?
- 16. 在mfc應用程序中按下鍵盤上的捕捉鍵
- 17. 在Actionscript/Flex應用程序中捕捉關閉/卸載事件
- 18. 如何以及在哪裏捕捉j2ee應用程序中的異常
- 19. 如何正確地捕捉網絡應用程序錯誤在Global.asax中
- 20. 如何在應用程序的每個視圖中捕捉觸摸事件?
- 21. 如何在iPhone中使用相機捕捉整個屏幕?
- 22. iphone dev - 如何捕捉異常'NSRangeException'
- 23. [iPhone]如何捕捉信號「EXC_BAD_ACCESS」?
- 24. 如何捕捉iPhone VoiceOver事件?
- 25. 如何捕獲應用程序不活動iphone中的時間
- 26. 在iPhone中捕捉屏幕截圖?
- 27. 如何捕捉其中的Facebook用戶點擊安裝我的應用程序
- 28. 嘗試捕捉在C#WPF應用程序
- 29. 通過相機捕捉圖像,即使在應用程序內
- 30. 捕捉web應用程序中的Talend錯誤
它不起作用或我不正確使用它。 我的第二個線程正在發生此錯誤。 – Shay 2009-08-20 07:59:36
你確定,你是否足夠早地安裝處理程序? – Farcaller 2009-08-20 15:01:40