connect関数をタイムアウトにする方法
int timeout(int sig) { close(sock); return; } int main(void) { hogehoge hogehoge sock = socket(〜〜〜〜〜); signal(SIGALRM, timeout); alarm(5); /* ualarmにするとマイクロ秒単位で設定が可能に */ if(connect(〜〜〜〜〜) == 0) { } alarm(0); close(sock); return; }
とすると、5秒後にシグナルが呼ばれて、それによりtimeout()が呼ばれて、
よろしよろしに。
まあ、若干省きまくってるけど、一応メモ。