【问题标题】:How are I/O library routines implemented for languages which does not support low-level access?如何为不支持低级访问的语言实现 I/O 库例程?
【发布时间】:2011-01-27 09:28:59
【问题描述】:

不支持对机器进行低级访问的语言,例如内存映射 I/O,通常(如果不总是)具有提供此类访问的库例程。现在,如果语言本身不支持这种访问,这些库例程是如何实现的?

【问题讨论】:

    标签: programming-languages implementation routines


    【解决方案1】:

    这真的取决于语言。某些语言具有“互操作”功能,允许用该语言编写的方法调用可以用另一种语言(C、汇编程序等)实现的库原语。

    例如,.NET 语言具有 P/Invoke 工具,允许它们调用非托管 DLL(可以用 C、C++、汇编程序或任何其他允许从 DLL 导出函数的语言编写),但对于内部 CLR使用还有“内部调用”修饰符,它直接调用在 CLR DLL 中实现的库原语。

    【讨论】:

    • 啊,有趣。甚至从未考虑过这个选项。我想也许是编译器本身为这些例程提供了代码,并将该代码作为机器代码的一部分包含在内。
    猜你喜欢
    • 1970-01-01
    • 2012-02-16
    • 2022-11-14
    • 1970-01-01
    • 2020-11-22
    • 2021-06-29
    • 2013-12-22
    • 1970-01-01
    • 2021-06-11
    相关资源
    最近更新 更多