/images/avatar.png

整理代码片段

根据pid获取进程名

void get_process_name_by_pid(int pid, char *name)
{
    char buf[256] = {0};
    char path[256] = {0};

    sprintf(buf, "/proc/%d/exe", pid);
    readlink(buf, path, sizeof(path));

    char *filename = basename(path);
    strcpy(name, filename);
}

C语言变长数组

C99标准才有的特性

void test_vla(const char *str)
{
    int len = strlen(str);

    char a[len + 1];
    memset(a, 0, sizeof(a));

    strcpy(a, str);

    printf("%s\n", a);
}

确保路径存在

bool besure_path(const char *pathname) {
    int len = strlen(pathname);

    char buffer[len + 1];
    memset(buffer, 0, sizeof(buffer));

    strcpy(buffer, pathname);

    for (int i = 0; i < len; ++i) {
        if (buffer[i] == '/') {
            buffer[i] = 0;

            if (access(buffer, F_OK) < 0) {
                if (mkdir(buffer, 0755) < 0) {
                    return false;
                }
            }

            buffer[i] = '/';
        }
    }

    return true;
}

计算一个数字二进制格式1的个数

int count_bit(int n) {
    int count = 0;

    while (n != 0) {
        ++count;
        n &= n - 1;
    }

    return count;
}

Pygame第4章 创建视觉

电脑游戏倾向于视觉上很自然,游戏开发者花费很多精力在处理图像和提升视觉效果来创建最令人愉快的体验上。

像素的威力

显示器里的一个独立的点称为一个图像单元或像素。如果一个显示器分辨率为1280x1024,则像素总数为1310720。一个屏幕上像素越多,则图片的质量越好。典型的家用电脑可以显示的颜色数量最高为16.7百万个。如果你想显示每一种颜色,你需要一个分辨率4096x4096的显示器。

Pygame第3章 Pygame介绍

安装Pygame

Ubuntu下安装Pygame:

sudo apt-get install python-pygame

装好后,查看Pygame版本:

>>> import pygame
>>> print pygame.ver

使用Pygame

Pygame有很多模块。每一个设备都有一个对应的模块。Pygame模块一览:

PyQt编程第7章 使用Qt Designer

用户界面保存在.ui文件中,包含一个窗口部件和布局的详细情况。Qt Designer能够关联标签和它的伙伴, 设置tab顺序(这个也可以用QWidget.setTabOrder()完成)。Qt Designer也能够关联信号和槽, 但是只能是内置的信号和槽。