高级程序如何调用用低级语言编写的函数 - 函数调用之间如何进行数据类型转换

问题描述 投票:0回答:1

众所周知,LINUX 系统调用是用 C 语言编写的,例如:open()、read() 等, - JAVA、PYTHON 等高级语言将如何使用这些函数 - 因为这些系统接受 C 数据类型 - 如何JAVA 类型/PYTHON 类型是否转换为 C 类型 - 此任务是否由 JAVA/PYTHON 编译器负责?

我试图获取类型转换如何发生的答案,但在任何地方都没有得到正确的答案!!

java c linux compilation system-calls
1个回答
0
投票

Java 有 Java 本机接口 (JNI),Python 有 ctypes。两者都实现了外部函数接口系统。我知道 python 的 ctypes 可以调用基本上任意的 c 函数,我不确定 JNI 是否也是如此。

至少有一个库(libffi)可以用来大大简化这一过程的实现。我自己在类似 lisp 的解释器中使用了它。

© www.soinside.com 2019 - 2024. All rights reserved.