服务器/客户端的共享错误号? [关闭]
Posted
技术标签:
【中文标题】服务器/客户端的共享错误号? [关闭]【英文标题】:shared errno for server/client? [closed] 【发布时间】:2014-06-22 00:16:58 【问题描述】:使用远程过程调用,我们如何为服务器端和客户端机器共享errno?
为了澄清,这里是我的问题的上下文: 我正在尝试实现分布式文件系统。我的目标是集中式设计,将文件保存在服务器上,客户端通过远程过程调用访问它们。因此,当客户端打开文件时,我在服务器机器上调用 open 并将缓冲区返回给客户端。我想保留共享的 errno 值,以便客户端能够检测到打开调用的失败并打印正确的错误消息。
【问题讨论】:
errno
在任何情况下都是一个坏主意,在分布式系统中是一个更糟糕的主意。改用异常或错误。
【参考方案1】:
似乎您的选择是:
1) 为每个 RPC 调用添加一个 errno(输出)参数,或者
2) 定义一个额外的 RPC 调用来“检索最新的 errno”
如果您有可能同时发生多个 RPC(例如,线程),选项 2 可能不是一个好主意,而将选项 1 留作余下的选择。在任何情况下,这都是直截了当的方法:如果客户端想知道 open() 的状态,它会查看该 RPC 调用的结果。
【讨论】:
以上是关于服务器/客户端的共享错误号? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章