الكشف عن الأنابيب المكسورة في Solaris إرسال ()
-
18-09-2019 - |
سؤال
في Solaris كيفية اكتشاف مقبس مكسور في إرسال () مكالمة؟ أنا لا أريد استخدام إشارة.
حاولت so_nosigpipe و msg_nosignal ولكن كلاهما غير متوفر في سولاريس وبرنامجي يقتل مع خطأ "أنابيب مكسورة".
هل هناك أي طريقة للكشف عن الأنابيب المكسورة؟
شكرا!
المحلول
سيكون عليك استخدام sigaction()
لتجاهل خصيصا SIGPIPE
الإشارة:
struct sigaction act;
act.sa_handler = SIG_IGN;
sigaction(SIGPIPE, &act, NULL);
...ومن بعد send()
سوف تعود -1 مع errno
ضبط ل EPIPE
.
نصائح أخرى
أعتقد في سولاريس لديك خيارات محدودة فقط. AFAIK، المثلي الذي اقترحه CAF يبدو أنه أفضل حل.
لا تنتمي إلى StackOverflow