다음을 통해 공유


LOG_MESSAGE

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 운영 체제.