2012-11-18 4 views
-1

errno의 장점을 찾아 내려고했다.자바 예외에 비해서는 에러가 없다.

C가 (errno 또는 반환 값을 사용하여) 접근하여 오류를 나타낼 때 어떤 이점이 예외를 기반으로하는 Java 시스템보다 유리합니까?

+1

직장에 걸어가거나 지하철을 타야하는지 묻는 것과 같습니다. –

+0

일반적으로 아무 것도 없습니다. 단점 : 오류 코드 결과, 오류가없는 오류 및 오류 코드 풀 경로 등을 확인하는 것을 잊어 버린 경우 ... – GManNickG

답변

0

단일 스레드 코드의 경우에만 구현의 단순성을 제외하고 이점이 없습니다. errno 이전의 예외는 모든 대중적인 언어로 존재합니다.

편집가 : 요즘 errno 실제로 당 스레드 오류 상태를 추출하는 매크로로 평가, 그래서 멀티 스레드 코드에서 사용하는 것이 안전합니다 (덕분에 예수 라모스와 디트리히 엡).

+1

실제로 errno는 percpu로 정의되어 있으므로 실제로는 스레드로부터 안전합니다. –

+0

@JesusRamos : 스레드 당 의미합니까? 그러면 스레드를 가장 중요한 방법으로 안전하게 만들 수 있습니다. –

+3

스레드 당입니다. 그것처럼 보이지는 않지만,'errno'는 실제로 매크로이고'#define errno * get_per_thread_errno()'와 같은 것을 정의합니다. 대부분의 새로운 API는'errno'를'gethostbyname()'이나 POSIX 쓰레드와 같이 사용하는 것을 피합니다. –

관련 문제