46、X 系统扩展与兼容性函数详解

X 系统扩展与兼容性函数详解

1. 扩展相关内容
1.1 协议请求与同步调用

每个协议请求都有所不同,若需更多信息,可查看 Xlib 源码示例。在同步调用方面,每个过程在返回给用户之前,都应调用一个名为 SyncHandle 的宏。若启用了同步模式(可参考 XSynchronize ),请求会立即发送,并且库会等待服务器处理该过程可能产生的任何错误。

1.2 内存分配与释放

为支持这些过程的可能重入,在分配和释放内存时需遵循一些约定。特别是在从窗口系统向用户返回调用者事先无法知晓大小的数据(如字体列表或扩展列表)时。许多系统上的标准 C 库函数不支持信号或多线程使用,因此定义了一些与标准 I/O 库函数类似的函数,应使用这些函数替代对普通 C 库函数的调用。

若在临界区需要一个临时缓冲区(例如用于打包和解包网络协议数据),通用内存分配器可能开销过大(特别是在对性能要求较高的输出函数中)。此时可使用以下函数获取临界区内使用的临时缓冲区:

char *_XAllocScratch(display, nbytes);
  • display :指定与 X 服务器的连接。
  • nbytes :指定所需的字节数。

该存储区只能在存根的临界区内使用,在可能允许另一个线程在 Xlib 内执行的任何调用之后,不能假定返回的指针仍然有效。例如,在使用

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值