Linux環境でアプリケーションをデバッグしているときに、一部のイベントPOLLHUP|POLLIN
がLinuxでのみ発生することがわかります。私たちのアプリケーションはunixソケットを使用しています。私たちが行うとき:
ret = poll(xpoll->pfd, xpoll->pfd_count, xpoll_timeout);
straceの表示:
poll([{fd=4, events=POLLIN|POLLPRI|POLLERR|POLLHUP}, {fd=6, events=POLLIN|POLLPRI|POLLERR|POLLHUP}, {fd=7, events=POLLIN|POLLPRI|POLLERR|POLLHUP}], 3, 16) = 1
([{fd=7, revents=POLLIN|POLLHUP}])
その状況はsolaris(同じアプリケーション)では決して発生しません:strussは次のことを示しています:
2463/3: fd=569 ev=POLLIN|POLLPRI|POLLERR|POLLHUP rev=0
2463/3: fd=639 ev=POLLIN|POLLPRI|POLLERR|POLLHUP rev=0
2463/3: fd=631 ev=POLLIN|POLLPRI|POLLERR|POLLHUP rev=POLLIN
2463/3: fd=1160 ev=POLLIN|POLLPRI|POLLERR|POLLHUP rev=0
2463/3: fd=400 ev=POLLIN|POLLPRI|POLLERR|POLLHUP rev=0
ソラリスでの投票とliunxでの投票の違いを教えてください。すべての回答について事前にThx。