aio_write 예제

aio_write() 함수는 aiocbp->aio_buf가 가리키는 버퍼에서 aiocbp->aio_fildes와 연관된 파일에 aiocbp->aio_nbytes를 작성해야 합니다. 이 함수는 쓰기 요청이 시작되거나 최소한 파일 또는 장치에 큐에 대기할 때 반환됩니다. 이 예제에서는 동기 I/O 사용량과 비교하여 비동기 I/O 사용의 성능 향상을 보여 줍니다. 이 예제에서 5.6MB의 데이터는 주 프로그램 계산으로 비동기적으로 작성되며, 이는 일부 정규화가 있는 두 벡터의 스칼라 곱셈입니다. 다음 각 조건은 aio_write() 호출 시 동기적으로 또는 비동기적으로 검색될 수 있습니다. 아래 조건 중 어느 한 가지가 동기적으로 감지되면 aio_write() 함수는 -1을 반환하고 errno를 해당 값으로 설정합니다. 아래 조건 중 어느 한 가지가 비동기적으로 감지되면 비동기 작업의 반환 상태가 -1로 설정되고 비동기 작업의 오류 상태가 해당 값으로 설정됩니다. aio_write()가 I/O 작업을 성공적으로 큐에 대기하는 경우 비동기 연매의 반환 상태는 write() 함수 호출에서 일반적으로 반환되는 값 중 하나입니다. 작업이 성공적으로 큐에 대기되지만 이후에 취소되거나 오류가 발생하는 경우 비동기 작업의 오류 상태에는 write() 함수 호출에 의해 일반적으로 설정된 값 중 하나 또는 다음 중 하나인 aiocbp->aio_lio_opcode가 포함됩니다.

필드는 aio_write()에 의해 무시됩니다. IEEE Std 1003.1-2001/Cor 2-2004, 항목 XSH/TC2/D6/15가 적용되어 [EINVAL] 오류를 업데이트하여 aiocbp->aio_reqprio의 잘못된 값에 대한 [EINVAL] 오류를 검색하는 것이 우선 순위가 지정된 입력 및 출력 옵션이 지원되는 경우에만 필요합니다. 동일한 aiocbp를 사용하는 동시 비동기 작업은 정의되지 않은 결과를 생성합니다. [PIO] 이 파일에 대해 우선 순위가 지정된 I/O가 지원되는 경우 비동기 작업은 기본 스케줄링 우선 순위에서 aiocbp->aio_reqprio를 뺀 우선 순위로 제출되어야 합니다. 스레드 실행 스케줄링이 지원되지 않는 경우 기본 일정 우선 순위는 호출 프로세스의 우선 순위입니다. [PIO TPS] 그렇지 않으면 기본 스케줄링 우선 순위는 호출 스레드의 우선 순위입니다. 대부분의 2.6 커널 AIO 코드는 디스크 동시성을 개선하는 데 관련이 있지만, 이는 AIO의 문제 도메인 중 하나일 뿐입니다. 리눅스는 꽤 쉽게 그 점에서 다른 운영 체제를 따라 잡을 수 있습니다.

aiocbp 인수는 진행하는 동안 비동기 작업의 오류 상태 및 반환 상태를 각각 결정하기 위해 aio_error() 및 aio_return()에 대한 인수로 사용될 수 있습니다. 참고: 일반적인 믿음과는 달리 다윈 10.6.0(xnu 1504.9.26~3)에서 실제로 비동기로 테스트되고 확인되었습니다. 비동기 I/O 구현을 사용하는 C-main-source 파일: c 컴파일러로 빌드(예: clang 또는 cc): 비동기 I/O가 변경되는 주소 범위에 대해 뛰어난 동안 프로세스 메모리 공간을 변경하는 모든 시스템 작업의 경우 그 결과입니다. 동작이 정의되지 않습니다. 또 하나… AIO의 “재시도” 메커니즘은 아마 사용해야 할 것입니다. 그것은 여전히 비록 조금 주위 변경 지 고. 다음 조건은 동기또는 비동기적으로 감지될 수 있습니다.

git://repo.or.cz/ltp-debian.git/testcases/open_posix_testsuite/conformance/interfaces 찢어지고 자체 포함으로 만든 몇 가지 테스트가 있습니다.

Comments are closed.