【发布时间】:2019-10-13 09:29:45
【问题描述】:
我正在开发一个带有 flex、bison 和 c 的项目,我必须为一种简单的语言创建一个简单的编译器,该编译器可以直接在 Class 文件中生成 Java 字节码,然后我就可以使用 java 执行它。问题在于 Java 字节码。我不知道如何将十六进制字节码直接写入我的 C 程序中的文件。
我尝试使用 Sublime Text 手动编写“CAFE BABE”并使用十六进制编码保存。有用。我尝试了不同的 fwrite 和 fprintf 但找不到好的方法。
FILE *dest = fopen("HelloWorld.class", "wb");
fwrite("CAFEBABE", sizeof(unsigned int), 4, dest);
我还看到了一些带有 02x 的 fprintf...
fprintf(dest, "%02x", "0xCA");
实在看不懂怎么直接用十六进制编码写……
非常感谢您的帮助。
【问题讨论】: