我正在尝试使用sd bus(sd bus?)创建dbus服务,它将用表示套接字的fd响应。
我的客户机能够接收字符串和int,所以我已经介绍了基础知识。我要寻找的是如何将fd打包为响应消息中的“h”类型。

最佳答案

似乎不需要魔法。
服务器创建套接字并以最明显的方式回复客户端(伪代码):

fd = socket(AF_UNIX, SOCK_STREAM, 0);
sd_bus_reply_method_return(message, "h", fd);

客户端只需复制传入的fd,然后就可以访问它:
int fd;
int dup_fd;
sd_bus_message_read(message, "h", &fd);
dup_fd = dup(fd);

关于c - 如何使用sdbus发送Unix文件描述符?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40869161/

10-10 12:36