1
: 나는 오류를 잡을 수없는 경우접근 SBCL의 errno를 문자열 존재하지 않는 파일을 열 때 내가 여기에서 나는 오류를 처리 할 수 SBCL에서
(require "SB-POSIX")
(let* (fd)
(handler-case
(setf fd (sb-posix:open "w" sb-posix:o-rdonly))
(sb-posix:syscall-error (c)
(princ "error ")
(princ (sb-posix:syscall-errno c))
(princ " during ")
(princ (sb-posix:syscall-name c))
(terpri))))
error 2 during OPEN-WITHOUT-MODE
는, 결과의 상단 부분은 다음과 같습니다를 :
(require "SB-POSIX")
(let* (fd)
(setf fd (sb-posix:open "w" sb-posix:o-rdonly)))
Unhandled SB-POSIX:SYSCALL-ERROR:
Error in SB-POSIX::OPEN-WITHOUT-MODE: No such file or directory (2)
Backtrace for: #<SB-THREAD:THREAD "main thread" RUNNING {1001976AB3}>
"해당 파일이나 디렉토리가 없습니다"라는 내용을 참조하십시오. 거기에 내 코드가 그 문자열에 액세스 할 수있는 방법이 있나요, 그래서 내 오류 처리기는 "오류 2"보다 좀 덜 dorky 말할 수 있습니까?
'(sb-int : strerror errno)'는 조건 [보고 기능] (https://sourceforge.net/p/sbcl/sbcl/ci/master/tree/contrib/sb-posix/)이되는 방법처럼 보입니다. interface.lisp # l66) 그것을 얻는다. – jkiiski
@jkiiski : 완벽한! 그것을 공식적인 답변으로 만들고 싶다면, 나는 그것을 upvote하고 선호하는 솔루션으로 표시합니다. –