c poll 예제

선택한 파일 설명자에서 정의된 이벤트가 발생하지 않은 경우 poll()는 선택한 파일 설명자에서 이벤트가 발생할 때까지 시간 시간 시간(밀리초 이상)을 기다려야 합니다. 시간 지정 값이 0이면 poll()이 즉시 반환됩니다. 시간 지정 값이 -1이면 poll()은 요청된 이벤트가 발생할 때까지 또는 호출이 중단될 때까지 차단합니다. ppoll() 시스템 호출이 커널 2.6.16에서 Linux에 추가되었습니다. ppoll() 라이브러리 호출이 glibc 2.4에 추가되었습니다. 시간 제한 인수는 poll()이 차단할 시간에 대한 상한을 밀리초 단위로 지정합니다. 시간 시간에 음수 값을 지정하면 무한 시간 지정을 의미합니다. ret 변수를 사용하여 두 STREAMS 중 하나에서 이벤트가 발생했는지 여부를 확인합니다. poll() 함수는 이벤트가 발생할 때까지 500밀리초가 부여됩니다(poll() 호출 이전에 발생하지 않은 경우). 일반 파일은 항상 읽기 및 쓰기에 대한 TRUE를 폴링한다. int 설문 조사(구조체 폴프 *fds, nfds_t nfds, int 시간 시간 외); fd 값이 0보다 작으면 이벤트는 무시되고 revents는 poll()에서 반환될 때 해당 항목에서 0으로 설정됩니다. STREAMS, getmsg(), putmsg(), read(), select(), write(), IEEE Std 1003.1-2001, , , STREAMS 장치 이름/dev/dev0 및 /dev/dev1은 STREAMS 디바이스의 이름을 지정할 수 있는 방법의 예에 불과합니다.

STREAMS 명명 규칙은 IEEE Std 1003.1-2001을 준수하는 시스템마다 다를 수 있습니다. 시그프락 마스크(SIG_SETMASK, 시그마스크, 오리그마스크); 준비 = ppoll(&fds, nfds, 시간 시간); 시그프락 마스크(SIG_SETMASK, 및 오리그마스크, 널); STREAMS 장치 /dev/dev0 및 /dev/dev1을 열고 폴아웃 및 POLLWRBAND를 관심 이벤트로 지정하여 폴링합니다. 시간 제한 인수는 ppoll()이 차단할 시간의 상한을 지정합니다. 이 인수는 다음 형식의 구조에 대한 포인터입니다: 구조체 폴프d 배열의 각 요소는 하나의 소켓 설명자를 나타내며 다음 필드를 포함합니다. 쓰기 가 될 수 있습니다. 이 예제는 다음과 같이 진행됩니다: int ppoll(구조체 폴프fd *fds, nfds_t nfds, const 구조형 시간 사양 *시간 시간 설정, const sigset_t *sigmask); poll() 호출이 반환되면 revents 필드는 위의 필드의 비트-OR로 구성되어 실제로 해당 이벤트가 발생한 설명자가 알려줍니다. 또한 이러한 다른 필드가 있을 수 있습니다: 이벤트 및 이벤트에서 설정/반환될 수 있는 비트는 : ppoll() 필요한 이유에 대한 설명은 pselect(2)에 정의되어 있습니다. poll() 함수는 응용 프로그램에 파일 설명자 집합을 통해 입력/출력을 다중화하는 메커니즘을 제공합니다. fds로 가리키는 배열의 각 멤버에 대해 poll()은 이벤트에 지정된 이벤트에 대해 지정된 파일 설명자(들)를 검사해야 합니다. fds 배열의 폴프 구조 수는 nfds로 지정됩니다.