例如,如果我不应该使用的标准图书馆的功能,如printf,putchar那么我可以打印的字符的屏幕容易。是否有任何简单的方法这样做。我不知道很多关于系统的调和,如果我们使用它们然后怎么样?

所以可以在任何一个建议一个简单的印刷的方式而无需使用图书馆的功能??

有帮助吗?

解决方案 3

好感谢ü所有乌拉圭回合answers.I由郝先生问题在下面留言找到了一个简单的答案。他的回答是简单的程序,这样

涡轮C(DOS程序):

char far* src = (char far*) 0xB8000000L; 
*src = 'M'; 
src += 2; 
*src = 'D'; 

或尝试: http://en.wikipedia.org/wiki/Brainfuck :) - //浩(一小时前)

我试图在涡轮C和它的工作。 我想这样一个简单的解决方案,我想接受它作为正确的答案,但他(郝)把它作为一个评论,所以我粘贴在这里为其他用户知道这代表他并表示可以接受。再次感谢üMr.Hao。

其他提示

在标准C,你不能。唯I/O定义C是通过C的标准图书馆的功能。

在一个特定的平台,有可能的方式来做到这一点:

  • 使核呼吁直接有关。你可能会需要编写一些内联会做到这一点。你可以做litb的 write 直接打电话,而没有使用C图书馆。抓住你C库,看看它是如何做。
  • 直接写入框架的缓冲区。多用户操作系统常常不允许这种(至少没有作出任何library/核呼叫)。

除非你在写你自己C图书馆的,我不知道你为什么要这样做。

在Linux中,可以使用write系统调用:

write(1, "hello\n", 6); // write hello\n to stdout

如果你不能得到它的话,你可以去低一个台阶,一般调用系统调用:

syscall(__NR_write, 1, "hello\n", 6);

这是值得了解strace,你可以用它来查看哪些系统调用被任何特定的程序使用,而它运行。但要注意,对于“一些简单的解析器”,它几乎不需要使用原始系统调用。更好地利用C库的功能。

顺便说一句,了望WriteFile的和GetStdHandle功能,如果你想要做的在Windows上不使用C标准库。不会像虽然在linux溶液的l33t。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top