vprintf 예제

2019年8月3日

소수점 정수 변환(i, d, u)의 경우 출력은 로캘의 대체 출력 숫자(있는 경우)를 사용합니다. 예를 들어 glibc 2.2.3 이후 페르시아어(“fa_IR”) 로캘에서 아랍어-인도어 자릿수를 지정합니다. 다음 예제에서는 vprintf() 함수의 사용을 보여 주십니다. snprintf(snprintf)의 반환 값에 관하여(), SUSv2 및 C99는 서로 모순됩니다: snprintf(snprintf)가 크기=0으로 호출될 때 SUSv2는 지정되지 않은 반환 값을 1 보다 적게 규정하고 C99는 이 경우 STR을 NULL로 허용하고 반환 값(항상)을 제공합니다. 출력 문자열이 충분히 큰 경우에 기록되었을 문자 수입니다. 지정된 필드 너비 내에서 왼쪽-양쪽 정렬; 오른쪽 자리맞추기가 기본값입니다(너비 하위 지정기 참조). fprintf(), printf(), 스프린트프(), vprintf(), vfprintf(및 vsprintf() 함수는 C89 및 C99를 준수합니다. snprintf() 및 vsnprintf() 함수는 C99를 준수합니다. 함수 snprintf() 및 vsnprintf()의 glibc 구현은 Glibc 버전 2.1 이후 위에서 설명한 대로 작동하는 C99 표준을 준수합니다.

glibc 2.0.6까지 출력이 잘렸을 때 -1을 반환합니다. . 리눅스 libc4 다섯 C 표준 플래그에 대해 알고있다. 길이 수정자 h, l, L, E, 변환 c, d, i, E, F, F, G, G, i, n, o, p, s, u, x 및 X, F는 f의 동의어인 경우, 또한 D, O 및 U를 ld의 동의어로 받아들입니다. , lo, 및 루. %D에 대한 지원이 있을 때 나중에 심각한 버그가 발생했습니다. 사라졌다.) 로캘에 의존하는 방사형 문자, 수천 개의 분리기, NaN 또는 무한대 없음, “%m$” 및 “*m$”가 없습니다. glibc 2.1은 길이 수정자 hh, j, t 및 z 및 변환 문자 a와 A를 추가합니다. 이러한 모든 함수는 va_arg를 적어도 한 번 호출하며, arg값은 반환 후 확정되지 않습니다. 이러한 함수는 va_end를 호출하지 않으며 호출자에서 수행해야 합니다. 인수는 먼저 부호없는 char로 변환됩니다.

l 수정자를 사용하는 경우 인수는 wchar_t[2] 인수를 사용하여 %ls로 마치 문자 문자열로 먼저 변환됩니다. x 변환 문자의 경우 abcdef가 사용됩니다. X 변환 문자의 경우 ABCDEF가 사용됩니다. 정밀도는 표시할 최소 자릿수를 지정합니다. 기본 정밀도는 1입니다.

カテゴリー:未分類