linux下利用framebuffer画点的程序小例子

/*
 * =====================================================================================
 *
 *       Filename:  framebuffer.c
 *
 *    Description:  linux下利用framebuffer画点的程序小例子
 *
 *        Version:  1.0
 *        Created:  2011年02月25日 10时33分29秒
 *       Revision:  none
 *       Compiler:  gcc
 *
 *         Author:  [email protected]
 *        Company:  
 *
 * =====================================================================================
 */
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <sys/mman.h>
#include <linux/fb.h>
#include <unistd.h>
int main(int argc, char* argv[])
{
    int fb;
    int w, h;
    int *fbmem;
    struct fb_var_screeninfo fb_var;
    int bits;
    int i;
    
    //打开设备文件fb0
    fb = open("/dev/fb0", O_RDWR);
    if(fb < 0)
    {
        printf("open fb0 error!/n");
        exit(0);
    }
    //获取设备信息
    ioctl(fb, FBIOGET_VSCREENINFO, &fb_var);
    w = fb_var.xres;
    h = fb_var.yres;
    bits = fb_var.bits_per_pixel;
    printf("Framebuffer:%d * %d/n", w, h);
    printf("Bits:%d/n", bits);
    //映射空间
    fbmem = mmap(0, w*h*sizeof(int), PROT_READ | PROT_WRITE, MAP_SHARED, fb, 0);
    *(fbmem + w * 300 + 400) = 0xffffff;
    return 0;
}

你可能感兴趣的:(linux,struct,gcc,compiler)