콘텐츠로 이동
무료 평가 시작

pdcomm_secs_encode

함수

항목을 SECS-II 바이트로 인코딩해 호출자 저장 공간에 기록합니다.

PdcommStatus pdcomm_secs_encode(const PdcommSecsItem *handle, uint8_t *output, size_t capacity, size_t *required)

선언 위치: #include <pdcomm.h>

출력은 최소 크기의 길이 헤더를 사용하며, 기본형 페이로드 바이트는 그대로 유지합니다. 크기를 조회하려면 NULL과 용량 0을 전달합니다. 이 크기는 pdcomm_secs_info()의 encoded_length로도 얻을 수 있습니다.

매개변수

이름설명
handle유효한 항목입니다.
output대상 버퍼입니다. capacity가 충분하면 NULL이 아니어야 합니다.
capacityoutput의 크기(바이트)입니다.
required인코딩된 길이를 받습니다(handle이 NULL이면 0). NULL이 아니어야 하며, output이나 항목과 겹치면 안 됩니다.

반환값

항목을 인코딩하면 #PDCOMM_OK를 반환합니다. capacity가 *required보다 작으면 #PDCOMM_BUFFER_TOO_SMALL을 반환하며 출력은 변경하지 않습니다. required 또는 handle이 NULL이거나, 용량이 충분한데 output이 NULL이면 #PDCOMM_INVALID_ARGUMENT를 반환합니다. 항목이 자신의 한도를 넘으면 #PDCOMM_LIMIT_EXCEEDED를 반환합니다. 패닉(panic)을 격리했으면 #PDCOMM_INTERNAL_ERROR를 반환합니다.

참고

  • 스레드 안전성: 같은 항목에 대한 읽기 호출은 동시에 실행할 수 있습니다. 해제는 이 호출들과 동기화해야 합니다.