der*_*ert 15
在标准C中,你不能.C中定义的唯一I/O是通过C标准库函数.
在给定的平台上,可能有办法:
write直接进行litb的调用,而无需使用C库.获取C库的源代码,看看它是如何完成的.除非您正在编写自己的C库,否则我不确定您为什么要这样做.
在linux中,您可以使用write系统调用:
write(1, "hello\n", 6); // write hello\n to stdout
Run Code Online (Sandbox Code Playgroud)
如果你不能得到足够的,你可以更低一点,一般调用系统调用:
syscall(__NR_write, 1, "hello\n", 6);
Run Code Online (Sandbox Code Playgroud)
值得了解的是strace,您可以使用它来查看运行时任何特定程序使用的系统调用.但请注意,对于"一些简单的解析器",几乎不需要使用原始系统调用.更好地使用c库的功能.
顺便说一句,如果你想在不使用c标准库的情况下在Windows中执行上述操作,请留意WriteFile和GetStdHandle函数.虽然不会像linux解决方案一样l33t.
好的,谢谢大家的回答。我在问题下面的郝先生的评论中找到了一个简单的答案。他的答案是像这样的简单程序\n
Turbo C(DOS程序):
\n\nchar far* src = (char far*) 0xB8000000L; \n*src = \'M\'; \nsrc += 2; \n*src = \'D\'; \nRun Code Online (Sandbox Code Playgroud)\n\n或者试试这个: http: //en.wikipedia.org/wiki/Brainfuck :) \xe2\x80\x93 //Hao(一小时前)\n
我在 Turbo C 上尝试了它及其工作原理。\n我想要一个像这样的简单解决方案,我想接受它作为正确答案,但他(Hao)将其作为评论给出,所以我将其粘贴到此处,以便其他用户了解这一点代表他并接受了。再次感谢郝先生。
\n