나는 교육 목적으로 만 내 exit()
함수를 구현할 생각이었습니다. 나는 OS가 당신을 허락한다면 당신이 주소를 조작 할 수 있다는 것을 안다. (예를 들어, 운영체제가 주소 0을 조작하게하지 않으면 충돌이 일어날 것이다.)
그래서 그 주소로 0을 보내지 않으면 return 0
이 반환됩니다.main()의 끝에서 C++ 반환
int main(){
// code...
return 0;
}
return 0
은 OS에 '성공'을 반환합니다. 맞습니까? 그러나 그것은 어느 주소입니까? 그것을 어떻게 얻을 수 있습니까? 그리고이 방법으로 구현 된 C 표준 라이브러리의 실제 exit()가 있습니까?
귀하의 질문에 실제로 많은 의미가 없습니다. 명확하게 해봐야합니다. –
"OS에서 사용자가 조작 할 수있는 이러한 주소"에 대한 오해를 저장했다고 생각합니다. – Borgleader
'return 0;은'main' 함수에서'0'을 반환합니다. C++ 표준은 함수에서 반환 할 때 이동할 주소를 지정하지 않지만 일반적으로 호출 스택이나 레지스터에 저장됩니다. 일부 crt1 구현은'exit (main (argc, argc, envp))'를 사용하기 때문에 링커를 올바르게 설정하면'exit' 함수를 무시할 수 있습니다. – rightfold