小编sla*_*ais的帖子

最小的 Linux 实现是什么?

要使 Linux 操作系统发挥作用,并且在我学习 Linux 以及我的理解和需求增长时可以将其用作扩展和改进的基础,Linux 操作系统的最低限度是什么?

linux distribution-choice small-distribution

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

如何在控制台应用程序中获得对修饰键的用户级访问权限?

我需要访问我正在编写的控制台应用程序(个性化编辑器)的修饰键状态。

是否有任何包/库/提供此访问权限的任何内容?

我从某个地方拼凑了以下内容,但它仅在您是 root 时才有效,而且我真的不想在 root 级别上搞砸。

#include <iostream>
#include <string>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <termios.h>
#include <fcntl.h>
#include <linux/input.h>
#include <unistd.h>
#include <errno.h>

int kbhit(void)
{
    struct termios oldt, newt;
    int ch;
    int oldf;

    tcgetattr(STDIN_FILENO, &oldt);

    newt = oldt;
    newt.c_lflag &= ~0000172 ; //~(ICANON | ECHO);

    tcsetattr(STDIN_FILENO, TCSANOW, &newt);
    oldf = fcntl(STDIN_FILENO, F_GETFL, 0);
    fcntl(STDIN_FILENO, F_SETFL, oldf | O_NONBLOCK);

    ch = getchar();

    tcsetattr(STDIN_FILENO, TCSANOW, &oldt);
    fcntl(STDIN_FILENO, F_SETFL, oldf);

    return ch;
}

enum MODKEYS
{
    SHIFT_L = …
Run Code Online (Sandbox Code Playgroud)

keyboard console

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