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 week ago
28
Related
내가 가장 좋아하는 노트북
2 hours ago
2
Ubuntu, 거의 3주째 Linux 제로데이 원격 코드 실행 취약점 패치 미출시
2 hours ago
5
OpenBSD용 GEFS(Good Enough File System) 개발 진전
3 hours ago
2
PostHog, 데이터 웨어하우스를 DuckDB에서 이전
3 hours ago
2
잠깐 확인...
3 hours ago
2
실직한 기술직 노동자들, 샌프란시스코 AI 호황에서 소외되다
4 hours ago
5
Show HN: Warsaw in voxels - 바르샤바 도심의 인터랙티브 3D 지도
4 hours ago
2
미국에서 남아 이름이 여아 이름으로, 여아 이름이 남아 이름으로 바뀐 사례
4 hours ago
5
Tips
click
Trending
Popular
승부 가리기엔 11회가 모자랐다…KT, 연장 접전 끝 롯데와 2-2 무승부→매직넘버 2
4 weeks ago
492
“군대 안가” 자랑한 축구대표팀에…안철수 “군대가 혐오시설? 군면제 없애야”
4 weeks ago
484
[ET특징주]펩트론, 일라이릴리 기술평가 종료 소식에 하락세
3 weeks ago
481
은행권 AI 연쇄해킹…공격서버에 ‘중국어 문자열’ 있었다는데
4 weeks ago
479
[美특징주]캠벨·제너럴밀스 등 강세…기술주 이탈해 소비재주로
2 weeks ago
478
이효리, 잔고 10만원·찬물 샤워 '쉬었음 청년' 커플 사연에.."너무 마음 아파"[연애전쟁]
4 weeks ago
380
“왜 슈퍼스타인지 증명했다” 김도영, 9회초 역전 스리런포 작렬…KIA 3위 자리 지켰다
4 weeks ago
378
존슨앤존슨, 켄뷰 분사로 혁신 의약품 집중…목표가 상향-씨티
4 weeks ago
367
[美특징주]레나, 버크셔해서웨이가 지분 매입 소식에 상승
3 weeks ago
364
발사대에 우뚝 선 누리호…막바지 준비 거쳐 내일 우주로
3 weeks ago
352
© Clint's Theme Park 2026. All rights are reserved



![[ET특징주]펩트론, 일라이릴리 기술평가 종료 소식에 하락세](https://img.etnews.com/news/article/2026/10/08/news-p.v1.20261008.b94f10395e00410b8d2a494b9b836893_P1.gif)

![[美특징주]캠벨·제너럴밀스 등 강세…기술주 이탈해 소비재주로](https://image.edaily.co.kr/images/content/defaultimg.jpg)
![이효리, 잔고 10만원·찬물 샤워 '쉬었음 청년' 커플 사연에.."너무 마음 아파"[연애전쟁]](https://image.starnewskorea.com/cdn-cgi/image/f=auto,w=1200,h=1498,fit=cover,q=high,sharpen=2/21/2026/10/2026100508283965845_1.jpg)


English (US) ·