RMT(8)

명칭
rmt - 리모트 프로그램으로부터 자기테이프의 조작을 행하기 위한 프로토콜 모듈

서식
rmt

해설
rmt 유틸리티는, 리모트 덤프 및 restore를 행하는 프로그램으로부터, 프로세스간 통신을 이용해 자기테이프 드라이브를 조작하기 위해서 이용됩니다. 통상은 rexec(3) 혹은 rcmd(3) (으)로부터의 호출에 응해 기동됩니다.

rmt 유틸리티는, 자기테이프의 조작 요구를 받아들여 명령을 실행합니다. 그 후, 상태를 반환합니다. 모든 응답은, ASCII 캐릭터 라인 및 이하의 2 개의 형식을 조합해 행해집니다. 명령 실행이 성공했을 경우는, 이하의 응답이 있습니다.

Anumber\n

number (은)는, 10 진의 ASCII 표현입니다. 명령 실행이 실패했을 경우에는, 이하의 응답이 있습니다.

Eerror-number \nerror-message \n

error-number (은)는, intro(2) 에 기술이 있는 에러 번호이며, error-message (은)는, perror(3) 에 의해 출력되는 에러 캐릭터 라인입니다. 프로토콜은, 이하의 명령을 포함해, 명령와 인수의 사이, 혹은 인수간으로는 스페이스는 삽입되지 않습니다. ‘\n’ 의 표시는, 그 부분에서 개행이 요구되고 있습니다:

Odevice
    \nmode\n 지정되었다 device (을)를 mode 그리고 지정된 속성으로 오픈합니다. device 하 풀 패스로 지정되어 mode 하 open(2) 그리고 이용되는 10 진의 ASCII 표현입니다. 벌써 디바이스가 오픈되고 있었을 경우, 그 디바이스는 일단 클로우즈 되어 다시 오픈됩니다.

Cdevice\n
    현재 오픈되고 있는 디바이스를 클로우즈 합니다. device 지정은 무시됩니다.

L   whence\n offset\n 지정된 인수를 이용해, lseek(2) (을)를 실행합니다. 반환치의 의미는, lseek 시스템 콜의 그것과 같습니다.

Wcount\n
    오픈되고 있는 디바이스에 대해, 데이터를 기입합니다. rmt 유틸리티는, 요구원으로부터 count 바이트의 데이터를 읽어들입니다. 예기치 않은 EOF 를 읽어들였을 경우, 이상종료(ABEND) 합니다. 본명령의 반환치는, write(2) 시스템 콜과 같습니다.

Rcount\n
    오픈되고 있는 디바이스로부터 count 바이트만의 데이터를 읽어들입니다. count 하지만 데이터 버퍼의 사이즈 (10 k바이트)를 넘는 경우, 데이터 버퍼 사이즈에 절약할 수 있습니다. rmt 유틸리티는 read(2) 시스템 콜을 실행해, 읽기가 성공하면(자) Acount-read\n (이)라고 대답합니다. 그렇지 않으면, 표준적인 형식에서 에러가 반환됩니다. 읽기가 성공하면(자), 읽힌 데이터 (은)는 요구 바탕으로 송신됩니다.

Ioperation
    \ncount\n 지정된 인수를 이용해 ioctl(2) 의 MTIOCOP 리퀘스트를 실행합니다. 인수는, 10 진의 ASCII 표현으로 옮겨져 ioctl(2) 그리고 사용하는 구조체의 멤버 mt_op 및 mt_count 에 각각 격납됩니다. 조작이 성공했을 경우의 반환치는, 인수 count 의 값입니다.

S   ioctl(2) 시스템 콜의 MTIOCGET 리퀘스트를 이용해 오픈되고 있다 디바이스 상태를 반환합니다. 조작이 성공하면(자), 스테이터스 버퍼의 사이즈와 함께 ``ack''가 송신됩니다. 그리고 스테이터스 버퍼가 (바이너리 형식에서) 송신됩니다.

상기 이외의 명령을 rmt 하지만 수신했을 경우, rmt (은)는 종료합니다.

진단
모든 대답은, 상기대로입니다.

관련 항목
rcmd(3), rexec(3), mtio(4), rdump(8), rrestore(8)

버그
본명령을 리모트 파일 액세스 프로토콜로서 사용하지 마세요.

역사
rmt 유틸리티는 4.2BSD (으)로부터 등장했습니다.