2011-01-27 1 views
1

메모리 매핑 I/O와 같이 컴퓨터에 대한 저수준 액세스를 지원하지 않는 언어는 종종 그러한 경우가 아니면 항상 그런 액세스를 제공하는 라이브러리 루틴을 가지고 있습니다. 자, 언어 자체가 그런 접근을 지원하지 않는다면,이 라이브러리 루틴은 어떻게 구현됩니까?저수준 액세스를 지원하지 않는 언어에 대해 I/O 라이브러리 루틴을 구현하는 방법은 무엇입니까?

답변

1

정말 언어에 따라 다릅니다. 일부 언어에는 해당 언어로 작성된 메소드가 다른 언어 (C, 어셈블러 등)로 구현 될 수있는 라이브러리 기본 함수를 호출 할 수있게 해주는 "interop"기능이 있습니다.

예를 들어 .NET 언어에는 관리되지 않는 DLL (C, C++, 어셈블러 또는 DLL에서 내 보낸 함수를 허용하는 다른 언어로 작성 될 수 있음)을 호출 할 수있는 P/Invoke 기능이 있지만 내부 용 CLR을 사용하면 CLR DLL 중 하나에서 구현되는 라이브러리 기본 형식으로 직접 호출되는 "내부 호출"수정자가 있습니다.

+0

아, 재미 있습니다. 그 옵션을 결코 고려하지 않았습니다. 필자는 아마도 컴파일러 자체가 그러한 루틴을위한 코드를 제공하고 해당 코드를 기계 코드의 일부로 포함 시켰을 것이라고 생각했습니다. – gablin