uwritec 커널 서비스

용도

설명된 버퍼에서 문자를 검색합니다. uio 구조 .

구문

#include <sys/types.h>
#include <sys/errno.h>
#include <sys/uio.h>
int uwritec ( uiop)
struct uio *uiop;

매개변수

항목 설명
다음을 가리킨다 uio 문자를 읽을 버퍼를 설명하는 구조입니다.

설명

그만큼 uwritec 커널 서비스는 다음과 같이 설명된 버퍼에서 문자를 읽습니다. uio 구조 . 장치 드라이버 상위 절반 루틴, 특히 문자 장치 드라이버는 자주 사용합니다. uwritec 사용자 영역 외부로 데이터를 전송하는 커널 서비스입니다. 그만큼uio_residuio_iovcnt의 필드 uio 구조체는 0보다 커야 합니다. 그렇지 않으면 오류가 반환됩니다.

그만큼uio_segflg필드 uio 구조는 데이터가 사용자 데이터 영역 또는 커널 데이터 영역에서 판독되는지 여부를 나타냅니다. 이 필드는 호출자에게 메모리 간 작업이 필요한지, 필요한 메모리 간 설명자를 제공했는지 여부도 나타냅니다. 이 플래그의 값은/usr/include/sys/uio.h 파일.

데이터가 성공적으로 읽혀지면 다음 필드가 uio 구조가 업데이트되었습니다.

필드 설명
uio_iov 현재 주소를 지정합니다.iovec사용할 요소입니다.
uio_xmem 현재 주소를 지정합니다.xmem사용할 요소입니다(교차 메모리 복사에 사용됨).
uio_iovcnt 남은 수를 지정합니다iovec강요.
uio_iovdcnt 수를 지정합니다iovec요소가 이미 처리되었습니다.
uio_offset 데이터가 기록되는 장치의 문자 오프셋을 지정합니다.
uio_resid 설명된 데이터 영역에 남아 있는 총 문자 수를 지정합니다. uio 구조.
iov_base 현재 설명된 데이터 영역에서 사용 가능한 다음 문자의 주소를 지정합니다.iovec요소.
iov_len 현재 설명된 버퍼에 남아 있는 데이터의 길이를 지정합니다.iovec요소.

실행 환경

그만큼 uwritec 커널 서비스는 다음에서 호출될 수 있습니다. 프로세스 환경 오직.

리턴 값

성공적으로 완료되면, uwritec 서비스는 검색을 위해 전송된 문자를 반환합니다.

항목 설명
-1 다음 세 가지 이유 중 하나로 인해 버퍼가 비어 있거나 사용자 위치가 유효하지 않음을 나타냅니다.
  • 다음uio_segflg필드는 사용자 공간과 기본 주소(iov_base필드)는 사용자 주소 공간 외부의 위치를 가리킵니다.
  • 사용자에게 해당 위치에 접근할 수 있는 충분한 권한이 없습니다.
  • 위치에 액세스하는 동안 I/O 오류가 발생했습니다.