0
uname(2)
을 호출 한 후에 오류를 확인해야합니까? 매뉴얼 페이지에 따르면 uname (2)로 오류를 확인 하시겠습니까?
, 제로가 반환됩니다. 에러시, -1이 리턴되고, errno는 적절히 설정된 이다.
및 ERRORS 제목 아래
,EFAULT 버피 유효하지 않다.
이 유일한 오류입니다.
유효한 struct utsname
버퍼가 주어지면 uname
이 절대로 실패하지 않는다고 가정 할 수 있습니까?
괜찮습니다. 고맙습니다. – yossarian
@ P.P. 그러나 어떤 이유로 그것이 실패 할 수 있습니까? 'LD_LIBRARY_PATH'를 통해 다른 구현으로 대체 된 것처럼 커널 컴파일 중에 기능이 비활성화 된 것보다 다른 이유가 있습니까? 그러나 후자의 경우 다른 버전의 libc가 필요할 것입니다. – user877329
@ user877329 LD_LIBRARY_PATH 및/또는 LD_PRELOAD 등을 사용하는 것은 본질적으로 해킹이며 모든 경우에 해당하지 않습니다. uname 실패의 가능성은 0에 가깝습니다 (커널의 버그와 같은 시나리오 제외). [Linux] (http://man7.org/linux/man-pages/man2/uname.2.html)의 정보는 실행중인 커널에서 가져온 것입니다. 그러나 POSIX는이 정보의 출처를 정의하지 않습니다. 따라서 다른 OS에서 다르게 구현 될 수 있으며 어떤 이유로 든 실패 할 수 있습니다. 사용자 관점에서 반환 값을 확인하는 것은 모든 구현/OS에 대한 지식보다는 의존적 인 방법입니다. –