使用远程过程调用,我们如何为服务器端和客户端机器共享errno?
澄清一下,这是我的问题的背景: 我正在尝试实现分布式文件系统。我的目标是集中设计,我将文件保存在服务器上,客户端通过远程过程调用访问它们。因此,当客户端打开文件时,我在服务器计算机上调用open并将缓冲区返回给客户端。我想保持共享的errno值,以便客户端能够检测到打开调用上的失败并打印正确的错误消息。
答案 0 :(得分:1)
似乎您的选择是:
1)为每个RPC调用添加一个errno(输出)参数,或
2)定义另一个RPC调用"检索最新的errno"
如果您有可能同时发生多个RPC(例如,线程),则选项2可能是一个坏主意,将选项1作为剩余选项。在任何情况下,这都是直截了当的方法:如果客户端想要知道open()的状态,它会查看该RPC调用的结果。