小编yuy*_*hao的帖子

是否有可能在所有Qt程序中实现emacs样式的键绑定(可能作为qt插件)?

Gtk程序可以通过将不同的键绑定到gtk信号来具有不同的键绑定主题,但是afaik,qt程序现在不能这样做.

由于Qt支持插件(正如大多数此类库所做的,我的意思是高级插件或Qt扩展)并且至少其中一些(高级插件)可以由所有qt程序自动加载,如同类似ENV,是否可以使用qt插件获得全局(Emacs或其他样式)键绑定(至少在所有输入区域中)?换句话说,有谁知道这应该是哪种(高级)插件?

我的猜测是一个inputcontext插件或一个可访问(桥接)插件.对于输入上下文插件,我想知道这是否可以使用输入法,因为afaik一次只能启用一个inputmethod后端.对于可访问的插件,我还没有找到如何自动加载它.

谢谢.

plugins qt accessibility key-bindings

9
推荐指数
1
解决办法
841
查看次数

有没有办法获取unix套接字连接另一端的uid

有没有办法让UNIX域套接字侦听器只接受来自某个用户的连接(chmod/ chown不适用于抽象套接字afaik),换句话说,获取传入连接的uid(在Linux上)?

在Linux上使用抽象unix套接字的Dbus有一个GetConnectionUnixUser由polkit用来确定调用者的函数.所以我想dbus-daemon必须有办法做到这一点.有谁知道它是如何工作的?

sockets linux dbus unix-socket uid

6
推荐指数
1
解决办法
4016
查看次数

多线程 mprotect 的行为

出于并发/并行 GC 的目的,我对 mprotect 系统调用提供的内存顺序保证感兴趣(即 mprotect 多线程的行为或 mprotect 的内存模型)。我的问题是(假设没有编译器重新排序或有足够的编译器障碍)

  1. 如果线程 1 由于线程 2 上的 mprotect 而触发地址上的段错误,我能否确定在线程 1 中的段错误信号处理程序中可以观察到系统调用之前,一切都发生在线程 2 上?如果在线程 1 上执行加载之前在信号处理程序中放置了一个完整的内存屏障怎么办?

  2. 如果线程 1 在线程 2 设置为 PROT_NONE 的地址上执行易失性加载并且没有触发段错误,那么这是否足以在两者之间发生关系之前发生。或者换句话说,如果两个线程都这样做(*ga开始为0p是一个以只读方式开始的页面对齐地址)

    // thread 1
    *ga = 1;
    *(volatile int*)p; // no segfault happens
    
    // thread 2
    mprotect(p, 4096, PROT_NONE); // Or replace 4096 by the real userspace-visible page size
    a = *ga;
    
    Run Code Online (Sandbox Code Playgroud)

    是否可以保证a在线程 2 上会出现1?(假设在线程 1 上没有观察到段错误并且没有其他代码修改*ga

我最感兴趣的是 Linux 行为,尤其是 …

c multithreading garbage-collection mprotect virtual-memory

6
推荐指数
1
解决办法
875
查看次数