프로그램 내용은 일정한 시간마다 네트워크 트래픽을 보내는 겁니다.. 근데 문제는 일정한 시간을 시그널 함수 등록을 사용해서 구현 하려고 합니다..
근데 시그널 함수가 한 번 호출되고 나면 select에서 에러가 생겨 납니 다.
어떻게 해야 하는지??
안녕하세요 .
역시 잘 기억나지도 않고 맞는지도 모르겠지만 signal 함수는 실행되는 루 프안에 존재해서 매번 등록해줘야 했던 것으로 기억합니다. 따라서 그런 작업을 피하기 위해서는 signal이 아닌 다른 system call을 사용하시거나 그렇게 프로그램을 작성하셔야 할 것 같습니다.
그럼 즐거운 하루 되시기 바랍니다.
일단 select함수로 타이머로 돌리고.. alram signal을 받을시에는 select()가 에러가 납니다..
즉 이런경우 alram()과 pause()를 같이 조합을 해서 쓸수 있습니다.
그럼..
시그널 안에 또 시그널을 등록했습니다...
문제는 한 번 시그널이 호출되고 나면 select구문에서 에러가 발생 합니다...
#include
while(1) { if(select() < 0) { if(errno == EINTR) // 에러아님(시그널 때문이므로) continue; return 에러; } }
signal() 함수는 한번만 등록하면 됩니다. 아래 어떤 분 답변처럼 계속 등록할 필요 없습니다.
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
Re: 네트워크 프로그래밍...
안녕하세요 .
역시 잘 기억나지도 않고 맞는지도 모르겠지만 signal 함수는 실행되는 루
프안에 존재해서 매번 등록해줘야 했던 것으로 기억합니다. 따라서 그런
작업을 피하기 위해서는 signal이 아닌 다른 system call을 사용하시거나
그렇게 프로그램을 작성하셔야 할 것 같습니다.
그럼 즐거운 하루 되시기 바랍니다.
Re: 네트워크 프로그래밍...
일단 select함수로 타이머로 돌리고..
alram signal을 받을시에는 select()가 에러가 납니다..
즉 이런경우 alram()과 pause()를 같이 조합을 해서 쓸수 있습니다.
그럼..
Re^2: 네트워크 프로그래밍...(이상하네요)
시그널 안에 또 시그널을 등록했습니다...
문제는 한 번 시그널이 호출되고 나면 select구문에서 에러가 발생
합니다...
Re: 네트워크 프로그래밍...
#include
while(1)
{
if(select() < 0)
{
if(errno == EINTR) // 에러아님(시그널 때문이므로)
continue;
return 에러;
}
}
signal() 함수는 한번만 등록하면 됩니다.
아래 어떤 분 답변처럼 계속 등록할 필요 없습니다.
댓글 달기