我有两个应用程序在嵌入式Linux板上运行。一个作为守护进程运行,另一个作为它的接口运行。他们使用Unix套接字相互沟通。 至于处理套接字的任何异常终止,我试着终止接口应用程序[ctr + c]。但结果是,守护程序应用程序崩溃。由于套接字被终止,我在守护端获得套接字发送失败错误,这是预期的,但在此之后守护进程崩溃。 我不知道应该在哪里寻找调试这个问题。套接字发送失败是否会导致守护程序程序崩溃?
-2
A
回答
0
您是否将守护程序中的套接字设置为非阻塞模式?
假设你的代码如下所示:
而(1) { connfd =接受(listenfd,(结构sockaddr *)NULL,NULL);
/* then you use the fd */
func(connfd);
}
基于手册页:
“ 成功时,accept()方法返回一个非负整数是接受套接字描述符上的错误,则返回-1 ,并且errno被适当地设定。
和
如果没有未决的连接存在于队列中,并且插座没有被标记作为非阻塞,accept()阻塞调用者,直到连接存在。如果套接字被标记为非阻塞,并且队列中不存在挂起连接,则accept()会失败,并显示错误EAGAIN或EWOULDBLOCK。 “
因此,这意味着,如果你在非阻塞模式中,应检查接受(返回值),而不是直接使用它,因为在FD值将为-1。
以上是只是一种常见的可能性,如果不是这种情况,你可以尝试使用“sudo strace -p process_id”或者执行核心文件分析来了解它为什么会崩溃
相关问题
- 1. 通过WiFi使用套接字发送文本导致应用程序崩溃
- 2. LoadApplication导致程序崩溃
- 3. android内部套接字连接失败,守护进程服务
- 4. 如何防止calloc失败导致我的程序崩溃?
- 5. 通过套接字发送boost序列化时,应用程序崩溃
- 6. Silverlight new TouchPoint()导致程序崩溃
- 7. NSMutableOrderedSet导致应用程序崩溃
- 8. char arr =“...”;在C程序导致崩溃
- 9. iOS appendFomat导致应用程序崩溃
- 10. UIBarButtonItem导致应用程序崩溃
- 11. UIView removeFromSuperview导致应用程序崩溃
- 12. AppCompatActivity导致应用程序崩溃
- 13. mbstowcs_s导致我的程序崩溃
- 14. Firebase AuthUI导致应用程序崩溃
- 15. navigationcontroller导致应用程序崩溃
- 16. 免费()函数导致程序崩溃
- 17. MBProgressHUD导致应用程序崩溃
- 18. 结构导致程序崩溃
- 19. adwhirl导致Android应用程序崩溃
- 20. requestWindowFeature(Window.FEATURE_NO_TITLE);导致应用程序崩溃?
- 21. 的Java的Runtime.exec导致程序崩溃
- 22. QListWidgetItem指针导致程序崩溃
- 23. UIPickerView导致应用程序崩溃
- 24. ScrollView导致应用程序崩溃
- 25. 请求导致应用程序崩溃
- 26. AVL树删除导致程序崩溃
- 27. IKImageView导致应用程序崩溃
- 28. python win32com导致程序崩溃
- 29. Cryptoki dll导致应用程序崩溃
- 30. TCP发送不会导致崩溃进程
你是否检查过你没有使用套接字发送失败后,套接字将无效。 – GingerJack