pdcomm_gem_result_formatted_program_issue_at
함수
검증 보고서의 문제 하나를 복사합니다.
PdcommStatus pdcomm_gem_result_formatted_program_issue_at(const PdcommGemResult *result, size_t index, uint32_t *code, uint32_t *sequence, char *text, size_t capacity, size_t *required)텍스트 복사는 원자적입니다. 결과와 인덱스가 유효하면 *required는 항상 텍스트 길이를 받으며, capacity가 부족하면 text, code, sequence에는 아무것도 쓰지 않습니다. 크기를 조회하려면 NULL과 0을 전달합니다. 텍스트는 NUL 종료 문자가 없는 ASCII입니다. pdcomm_gem_result_formatted_program_id_get()과 같은 결과에 사용할 수 있습니다.
매개변수
| 이름 | 설명 |
|---|---|
result | GEM 결과입니다. |
index | 0부터 시작하는 문제 인덱스입니다. issue_count보다 작아야 합니다. |
code | ACKC7A 코드(0~5)를 받습니다. |
sequence | SEQNUM 명령 번호를 받습니다. |
text | ERRW7 텍스트를 받을 대상 버퍼입니다. capacity가 0일 때만 NULL일 수 있습니다. |
capacity | text의 크기(바이트)입니다. |
required | 텍스트 길이(바이트)를 받습니다. |
반환값
문제를 복사하면 #PDCOMM_OK를 반환합니다. capacity가 *required보다 작으면 #PDCOMM_BUFFER_TOO_SMALL을 반환합니다(그 밖에는 아무것도 쓰지 않음). result, code, sequence 또는 required가 NULL이거나, capacity가 0이 아닌데 text가 NULL이면 #PDCOMM_INVALID_ARGUMENT를 반환합니다. 결과에 보고서가 없거나 index가 범위를 벗어나면 #PDCOMM_OUT_OF_RANGE를 반환합니다(*required는 기록하지 않음). 패닉(panic)을 격리했으면 #PDCOMM_INTERNAL_ERROR를 반환합니다.
참고
code,sequence,text,required는 서로 겹치거나 결과와 겹치면 안 됩니다.