C 래퍼 함수나 libc 내부 구현에 기대지 않고 errno를 얻기 위해, Hare에서 perror의 오류 메시지를 가로채 숫자 오류 코드로 역변환하는 실험임 perror 는 errno를 직접 읽지만 결과를 stderr에 출력하므로, 프로그램 초기화 때 파일 디스크립터 2를 임시 파일로 돌려 메시지를 읽어옴 초기화 때 strerror 오류 메시지 테이블을 만들고, 캡처한 문자열과 일치하는 항목의 인덱스를 errno 값으로 반환함 strerror_r의 GNU/POSIX 버전 차이와 구현마다 달라질 수 있는 SEEK_SET 값 때문에, C 밖에서 이식성을 확보하는 과정에도 추가 우회가 필요함 출발점은 Hare가 기본 지원하지 않는 POSIX 시스템에서도 시스템 libc에 연결할 수 있는 범용 POSIX 타깃 실험이며, 오류 번호의 이식성 문제로 이 타깃에서는 문자열만 반환하려 했음 C 밖에서 errno를 읽기 어려운 이유 목표는 C로 작성한 래퍼 없이 다른 언어에서 errno 값을 얻는 것임. 예제 언어로 Hare를 사용함 errno는 매크로이며, 확장 결과는 이식 가능하지 않고 보통 안정성 보장도 없음 다른 언어에서 libc 함수를 호출한 뒤 오류 값을 얻으려면 일반적으로 구현 세부사항에 의존하거나 errno를 반환하는 C 래퍼를 작성해야 함 libc에는 errno 값을 반환하는 함수가 없지만, 오류를 설명하는 문자열을 얻는 함수는 있음 표준 C의 strerror, perror와 POSIX의 strerror_r, strerror_l이 후보임 strerror 계열은 오류 번호를 인자로 요구하고, perror만 errno를 직접 읽음 따라서 실제 stderr에 출력하지 않으면서 perror의 결과를 캡처하는 방식으로 접근함 stderr를 임시 파일로 돌려 메시지 캡처하기 프로그램 초기화 단계에서 dup으로 원래 stderr를 보관하고, mkstemp로 임시 파일을 만든 뒤 dup2로 STDERR_FILENO인 2를 임시 파일에 연결함 종료 처리에서는 임시 파일 디스크립터를 닫고 파일을 삭제함 stderr와 상호작용할 수 있는 libc 래퍼나 시스템 호출 래퍼는 파일 디스크립터 2 대신 보관해 둔 원래 stderr 디스크립터를 사용함 이 전환은 오류 발생 전부터 유지해야 함. dup2가 errno를 덮어쓸 수 있으므로 perror 호출 직전에 전환하면 안 됨 문자열을 반환하는 첫 번째 get_errno()는 perro...
C 밖에서 이식성 있게 errno에 접근하는 괴상하고 엉망인 꼼수
1 hour ago
3
Related
분산 SQLite의 12년
1 hour ago
3
진화하는 위협: Node, Python 등에서 원격 코드 실행을 일으키는 http2shell
2 hours ago
3
CVE Tracker - 1999년부터의 CVE 공개 건수를 시각화하는 대시보드
2 hours ago
3
이것이 사이버 보안의 새로운 일상인가?
3 hours ago
3
정의되지 않은 동작(UB)이 괜찮다고 생각하는 사람들에게
3 hours ago
4
순수 함수형 프로그래밍은 C 성능에 얼마나 근접할 수 있을까?
3 hours ago
4
해커, 독일 극우 정당 AfD의 데이터 281GB 유출
5 hours ago
4
Show GN: AIDAN - 가입 없이 10문항 무료 연습과 4개 언어 교재
5 hours ago
4
Tips
click
Popular
직장인으로서 부를 쌓는 방법
1 week ago
324
[아시안게임] 유도 김민종, 남자 100㎏이상급 동메달…2회 연속 메달
3 weeks ago
291
[2026 노벨상] 생리의학상…뇌에 대한 이해 바꿔놓은 이들에게
2 weeks ago
280
How DataXStream Accelerates Sales and Customer Engagement wi...
3 weeks ago
279
마이크론이 먼저 확인한 메모리 호황…삼성·SK하이닉스는 '비용 변수'
2 weeks ago
278
Show GN: 5달러 시계에 Claude·Codex 사용량을 띄워봤습니다
2 weeks ago
275
박진영, 12월 서울서 사흘간 연말 콘서트 '웨트'
3 weeks ago
275
방탄소년단, 자체예능 '달려라 방탄 2.0'으로 돌아온다
3 weeks ago
274
로민 '다큐먼트 AI 플랫폼', KISA 클라우드 보안인증 획득
3 weeks ago
266
Accelerate your SAP modernization with Kiro
3 weeks ago
266
© Clint IT 2026. All rights are reserved

![[아시안게임] 유도 김민종, 남자 100㎏이상급 동메달…2회 연속 메달](https://img3.yna.co.kr/photo/yna/YH/2026/10/02/PYH2026100223210001300_P4.jpg)
![[2026 노벨상] 생리의학상…뇌에 대한 이해 바꿔놓은 이들에게](https://image.inews24.com/v1/a8cf79c5a2313a.jpg)





English (US) ·