小编Ric*_*nez的帖子

通过Linux FrameBuffer将像素绘制到屏幕上

我最近对一个奇怪的想法感到震惊,即从/ dev/urandom获取输入,将相关字符转换为随机整数,并使用这些整数作为像素的rgb/xy值绘制到屏幕上.

我做了一些研究(这里是关于StackOverflow和其他地方),许多人建议您可以直接写入/ dev/fb0,因为它是设备的文件表示.不幸的是,这似乎没有产生任何视觉上明显的结果.

我发现了一个示例C程序来自QT教程(不再可用),它使用mmap写入缓冲区.程序成功运行,但同样没有输出到屏幕.有趣的是,当我将我的笔记本电脑放入Suspend并稍后恢复时,我看到了一个瞬间闪现的图像(一个红色正方形),它被更早地写入帧缓冲区.写入帧缓冲区是否在Linux中用于绘制屏幕?理想情况下,我想写一个(ba)sh脚本,但C或类似的也可以.谢谢!

编辑:这是示例程序...兽医可能看起来很熟悉.

#include <stdlib.h>
#include <unistd.h>
#include <stdio.h>
#include <fcntl.h>
#include <linux/fb.h>
#include <sys/mman.h>
#include <sys/ioctl.h>

int main()
{
    int fbfd = 0;
    struct fb_var_screeninfo vinfo;
    struct fb_fix_screeninfo finfo;
    long int screensize = 0;
    char *fbp = 0;
    int x = 0, y = 0;
    long int location = 0;

    // Open the file for reading and writing
    fbfd = open("/dev/fb0", O_RDWR);
    if (fbfd == -1) {
        perror("Error: cannot open framebuffer device");
        exit(1);
    }
    printf("The framebuffer …
Run Code Online (Sandbox Code Playgroud)

c linux framebuffer

34
推荐指数
2
解决办法
6万
查看次数

终端 - 删除所有不包含 .mp3 文件的文件夹

我在 Linux 上使用 Banshee,让它在文件夹层次结构中自动组织我的音乐收藏。当我将新专辑添加到“音乐”文件夹时,Banshee 会自动移动(并重命名)mp3,并将它们放入正确的“艺术家”文件夹中。如果文件夹中没有其他文件,则该文件夹也会被删除,但如果存在其他文件,则仅移动 mp3,而保留该文件夹。因此,我的音乐文件夹中有许多文件夹,其中不包含 mp3,仅包含图像文件或类似的辅助文件。

我将如何删除其中没有 mp3 文件的任何文件夹(在 Music 文件夹内)?

例如,假设我有以下内容:

/home/user/Music/
Run Code Online (Sandbox Code Playgroud)

我添加了文件夹“Album 1 (2010)”,其中包含 mp3 和封面艺术。Banshee 会取出 mp3 并将它们放入正确的艺术家文件夹中,例如:

/home/user/Music/Artist
Run Code Online (Sandbox Code Playgroud)

但然后文件夹

/home/user/Music/Album 1 (2010)
Run Code Online (Sandbox Code Playgroud)

仍然存在。如何检查该文件夹中是否有mp3,如果没有则将其删除?

我认为答案将是命令行,但我愿意接受任何建议。另外,最好要求确认……以防万一。

unix linux bash command-line

5
推荐指数
1
解决办法
3215
查看次数

从一系列PDF中删除第一页

我有一系列PDF(计算机游戏世界问题),我想从每个问题的pdf文件中删除第一页.有100个问题,因此GUI不会削减它.我用pdftk从一个问题中删除了第一页:

pdftk 1981_1112_issue1.pdf cat 1 output 1.pdf
Run Code Online (Sandbox Code Playgroud)

我的问题是我不想为每个pdf问题修改和运行此命令,因为这并不比GUI方法好多少.

使用*.pdf作为输入似乎不起作用.我还可以使用其他方法在每个PDF上运行pdftk?

pdf bash pdftk

3
推荐指数
1
解决办法
5962
查看次数

从lsof中拉取字段/属性(Linux命令行)

随着最近转向Flash 10(或者它可能是一个发行版选择),我和许多其他人不再能够从/ tmp复制Flash视频.但是,我发现了以下解决方法:

首先,执行:

lsof | grep Flash
Run Code Online (Sandbox Code Playgroud)

应该像这样返回输出:

plugin-co 8935    richard   16w      REG        8,1   4139180       8220 /tmp/FlashXXq4KyOZ (deleted)
Run Code Online (Sandbox Code Playgroud)

注意:您可以在此处看到问题..../tmp文件已释放文件指针.

但是,您可以通过使用cp命令来获取文件:

cp /proc/#/fd/# video.flv
Run Code Online (Sandbox Code Playgroud)

其中第一个#是进程ID(8935),第二个是下一个数字(16,从16w).

目前,这是有效的,但它需要一些手动步骤.为了自动执行此操作,我想我可以拉出PID和fd编号并将它们动态插入到cp命令中.

我的问题是如何将适当的字段拉入变量?我知道你可以使用$ 1等来获取输入参数,但是你如何检索输出?

注意:我可以pidof plugin-container用来查找PID,但我仍然需要另一个数字(因为它告诉哪个特定的Flash视频要保存).

linux bash flv command-line

3
推荐指数
1
解决办法
4500
查看次数

标签 统计

bash ×3

linux ×3

command-line ×2

c ×1

flv ×1

framebuffer ×1

pdf ×1

pdftk ×1

unix ×1