简介
java 语言通过 JNA 调用 linux 操作系统libc库函数的一个小例子,仅供参考。
代码
import java.util.ArrayList;
import java.util.Arrays;
import com.sun.jna.Library;
import com.sun.jna.Native;
import com.sun.jna.Platform;
import com.sun.jna.Pointer;
import com.sun.jna.Structure;
import com.sun.jna.ptr.IntByReference;
import com.sun.jna.ptr.PointerByReference;
public class test {
private interface CLibrary extends Library
{
CLibrary Instance=(CLibrary)Native.load("c", CLibrary.class);
void printf(String format, Object... args);
int sprintf(byte[] buffer, String format, Object... args);
int scanf(String format, Object... args);
}
public static void main(String[] args){
CLibrary jnaLib = CLibrary.Instance;
jnaLib.printf("Hello World");
byte[] buf = new byte[128];
for (int i = 0; i < args.length; i++) {
jnaLib.printf("\nArgument %d : %s", i, args[i]);
}
jnaLib.printf("\nPlease Enter Your Name:\n");
jnaLib.scanf("%s", buf);
jnaLib.printf("\nYour name is %s\n", new String(buf));
}
}