#include #include #include #include #include #include #include static void bail(int cond, const char *msg) { if (cond) { perror(msg); exit(1); } } int main(void) { int id = open("/dev/urandom", O_RDONLY), fd = open("/dev/fb0", O_RDWR); unsigned *addr; char buf[4096]; bail(fd < 0, "/dev/fb0"); bail(id < 0, "/dev/urandom"); addr = mmap(NULL, sizeof(buf), PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0); bail(addr == MAP_FAILED, "mmap"); read(id, buf, sizeof(buf)); memcpy(addr, buf, sizeof(buf)); // write(fd, buf, sizeof(buf)); sleep(10); close(id); close(fd); return 0; }