반응형
%m 포맷 지정자의 의미는 무엇입니까?
이 코드에 대한 출력은 'Success'로 출력되었습니다.
printf("%m\n");
m
C의 입니다.printf
:
GNU 문서:
http://www.gnu.org/software/libc/manual/html_node/Other-Output-Conversions.html
'%m' 변환은 오류 코드에 해당하는 문자열을 errno로 출력합니다.에러 메시지를 참조해 주세요.다음과 같이 됩니다.
fprintf (stderr, "can't open `%s': %m\n", filename);
는 다음과 같습니다.
fprintf (stderr, "can't open `%s': %s\n", filename, strerror (errno));
'%m' 변환은 GNU C 라이브러리 확장입니다.
그래서:
printf("%m\n", d);
와 동등하다
printf("%s\n", strerror (errno), d);
와 동등하다.
printf("%s\n", strerror (errno));
:%m
는 인수가 필요 없습니다.서 ★★★★printf("%m\n", d)
★★★★★★★★★★★★★★★★★」printf("%s\n", strerror (errno), d)
printf
추가 후행 인수가 있는 경우 해당 인수는 평가되고 무시됩니다.
사실 %m에 관한 printf()의 매뉴얼은 매우 간결합니다.
m (Glibc extension; supported by uClibc and musl.) Print output
of strerror(errno). No argument is required.
★★★★★★★★★★★★★★★★★.strerror()
멀티플렉스 프로그램에 문제가 있습니다.재진입이 되지 않습니다.스레드 세이프 버전은 strror_r()입니다.
GLIBC 구현에 대한 약간의 연구 결과 %m은 실제로 strror_r()에 해당합니다.따라서 %m은 스레드 세이프!
언급URL : https://stackoverflow.com/questions/20577557/whats-the-meaning-of-the-m-formatting-specifier
반응형
'programing' 카테고리의 다른 글
Java에서 현재 작업 디렉토리를 변경하시겠습니까? (0) | 2022.07.14 |
---|---|
페이지를 다시 로드하는 중 vue 구성 요소의 슬롯에서 콘텐츠를 깜박이고 있습니다. (0) | 2022.07.14 |
2차원 배열 포인터 만들기 (0) | 2022.07.14 |
Webpack 및 Typescript 포함 Vue 2.5 템플릿 (0) | 2022.07.14 |
vue-router: 인수 변경 시 라우팅 방지 (0) | 2022.07.14 |