OS/2의 경우에만 LOG_MESSAGE 동사는 오류 로그 파일에 메시지를 기록하고 필요에 따라 사용자 화면에 메시지를 표시합니다. 이 동사는 기존 애플리케이션과의 호환성을 위해 포함됩니다.
다음 구조에서는 LOG_MESSAGE 동사에서 사용하는 VCB(동사 제어 블록)를 설명합니다.
문법
struct log_message {
unsigned short opcode;
unsigned char opext;
unsigned char reserv2;
unsigned short primary_rc;
unsigned long secondary_rc;
unsigned short msg_num;
unsigned char origntr_id[8];
unsigned char msg_file_name[3];
unsigned char msg_act;
unsigned short msg_ins_len;
unsigned char FAR * msg_ins_ptr;
};
구성원
opcode
제공된 매개 변수입니다. SV_LOG_MESSAGE 작업 코드를 식별하는 동사입니다.
opext
예약 필드입니다.
reserv2
예약 필드입니다.
primary_rc
반환된 매개 변수입니다. 동사가 완료될 때 APPC에서 설정한 기본 반환 코드를 지정합니다. 유효한 반환 코드는 발급된 APPC 동사에 따라 달라집니다. 이 동사에 대한 유효한 오류 코드는 반환 코드를 참조하세요.
secondary_rc
반환된 매개 변수입니다. 동사가 완료될 때 APPC에서 설정한 보조 반환 코드를 지정합니다. 유효한 반환 코드는 발급된 APPC 동사에 따라 달라집니다. 이 동사에 대한 유효한 오류 코드는 반환 코드를 참조하세요.
msg_num
제공된 매개 변수입니다.
msg_file_name 지정한 메시지 파일의 메시지 수를 지정합니다.
origntr_id
제공된 매개 변수입니다.
LOG_MESSAGE 발급하는 구성 요소의 이름 또는 사용자가 제공한 8 바이트 문자열을 지정합니다.
msg_file_name
제공된 매개 변수입니다. 기록할 메시지를 포함하는 파일의 이름을 지정합니다.
msg_act
제공된 매개 변수입니다. 메시지를 처리할 때 수행할 작업을 지정합니다.
SV_INTRV 사용하여 심각도 수준이 12인 개입을 기록하고 사용자 화면에 메시지를 표시합니다. 사용자가 키를 눌러 화면에서 메시지를 제거해야 합니다.
SV_NO_INTRV 사용하여 심각도 수준이 12인 개입을 기록하지만 메시지를 표시하지는 않습니다.
msg_ins_len
제공된 매개 변수입니다. 메시지에 삽입할 데이터의 길이를 지정합니다. 삽입할 데이터가 없는 경우 이 매개 변수를 0으로 설정합니다.
msg_ins_ptr
제공된 매개 변수입니다. 메시지에 삽입할 데이터의 주소를 지정합니다.
msg_ins_len 0보다 큰 경우에만 이 매개 변수를 사용합니다.
반환 코드
SV_OK
기본 반환 코드; 동사가 성공적으로 실행되었습니다.
SV_PARAMETER_CHECK
기본 반환 코드; 매개 변수 오류로 인해 동사가 실행되지 않았습니다.
SV_INVALID_DATA_SEGMENT
보조 반환 코드; 세그먼트 경계를 넘어 확장된 메시지에 삽입할 데이터입니다.
SV_INVALID_MESSAGE_ACTION
보조 반환 코드; msg_act 매개 변수에 잘못된 값이 포함되어 있습니다.
SV_COMM_SUBSYSTEM_NOT_LOADED
기본 반환 코드; 동사를 처리하는 동안 필요한 구성 요소를 로드하거나 종료할 수 없습니다. 따라서 통신을 할 수 없습니다. 정정 작업은 시스템 관리자에게 문의하세요.
SV_INVALID_VERB
기본 반환 코드; opcode 매개 변수가 동사의 작업 코드와 일치하지 않습니다. 동사가 실행되지 않았습니다.
SV_INVALID_VERB_SEGMENT
기본 반환 코드; VCB는 데이터 세그먼트의 끝을 넘어 확장되었습니다.
SV_UNEXPECTED_DOS_ERROR
기본 반환 코드; 다음 조건 중 하나가 발생했습니다.
Microsoft Windows 시스템에서 동사를 처리하는 동안 오류가 발생했습니다. 운영 체제 반환 코드는 보조 반환 코드를 통해 반환되었습니다. 문제가 지속되면 시스템 관리자에게 문의하여 수정 작업을 수행합니다.
CSV는 일반적인 Windows PostMessage 함수 호출이 아닌 Windows SendMessage 함수 호출을 실행하는 다른 애플리케이션에서 호출한 메시지 루프에서 발급되었습니다. 동사 처리는 수행할 수 없습니다.
SendMessage가 애플리케이션을 호출할 때 CSV가 발급되었습니다. InSendMessage Windows API 함수 호출을 사용하여 애플리케이션이 SendMessage로 호출되었는지 여부를 확인할 수 있습니다.
비고
msg_file_name 값은 3자여야 합니다. 필요한 경우 공백으로 패딩합니다. 입니다. MSG 확장이 자동으로 추가됩니다.
헤더 정보(40바이트), 메시지 텍스트 및 삽입된 데이터를 포함한 총 msg_ins_len 길이는 256바이트를 초과하지 않아야 합니다. 길이가 256바이트보다 크면 통신 시스템에서 헤더 정보와 삽입된 텍스트만 기록하려고 합니다. 메시지 텍스트가 제외됩니다.
로그 메시지 파일을 만들 때 메시지에서 추가 데이터를 삽입할 위치를 지정할 수 있습니다. 자세한 내용은 아래와 같습니다.
msg_ins_ptr 데이터는 최대 9개의 null로 끝나는 문자열로 구성됩니다. (IBM OS/2 ES 버전 1.0은 세 개의 데이터 문자열만 지원하므로 호환성을 보장하기 위해 삽입된 텍스트를 세 개의 문자열로 제한할 수 있습니다.)
메시지 파일 만들기
사용자 고유의 메시지 파일을 만들려면 유틸리티 MKMSGF를 사용해야 합니다.
메시지 번호의 처음 세 문자는 로그 메시지 파일의 세 문자 이름과 일치해야 합니다. 이 세 문자는 파일의 맨 위에도 선언됩니다.
시스템은 다음과 같이 메시지 파일을 찾습니다.
사용자 고유의 메시지 파일을 사용하는 경우 시스템은 파일이 프로그램 실행 파일과 동일한 디렉터리에 있다고 가정합니다.
기본 메시지 파일을 사용하는 경우 COM입니다. Microsoft Host Integration Server용 SnaBase가 로드되면 시스템에서 파일을 자동으로 찾습니다.
앞에서 언급한 소프트웨어를 로드하지 않고 기본 메시지 파일을 사용하는 경우 시스템에서는 DPATH가 메시지 파일의 경로를 나타내야 합니다. 이는 Windows 버전 3에만 적용됩니다. x 및 OS/2 운영 체제.