繁体   English   中英

系统调用绘制c中的一个点(linux)

[英]System call to plot a point in c( linux)

我是Linux系统调用的新手。我的问题是我们在Linux上有一个系统调用来绘制屏幕上的点。我用谷歌搜索它但找不到任何简单的解释。 我想在Linux中编写一个简单的C程序,直接在屏幕上绘制一个点而无需C图形库的帮助。

如果没有这样的系统调用,我如何创建自己的系统调用来绘制屏幕上的点?

linux上最低级别的硬件独立图形界面是帧缓冲 这是通过写入设备节点(通常是/dev/fb0 )来操纵的,这相当于系统调用,因为它是向内核发送请求的一种方法。 所以这不需要任何库。

一种常见的方法似乎是mmap()一块用户空间内存,代表屏幕到/dev/fb0 ,然后操纵它。 有一些ioctl()调用来获取有关帧缓冲区显示的信息。 一个好的信息起始位置是内核源代码中的文档 - src/Documentation/fb是一个完整的目录,参见例如“framebuffer.txt”和“api.txt”。 如果你在网上看,有一些教程等等。 你特别关注哪个内核版本来源并不重要 - “api.txt”的最后修订版本是2011年,而“framebuffer.txt”是十年前的版本(因此界面非常稳定)。

请注意,您无法在X中使用帧缓冲区。如果您想在X中执行图形处理,则必须至少使用Xlib或基于此构建的更高级别的库。

#define MAX_SCREEN_AREA 100
int Gotoxy(int x, int y)
{
char essq[MAX_SCREEN_AREA]={0}; // String variable to hold the escape sequence
sprintf(essq, "\033[%d;%df", y,x);
printf("%s", essq);
return 0;
}

试试这个。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM