سؤال

في 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 يبدو أنه أفضل حل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top