gpt4 book ai didi

macos - 如何在 OS X 上从 gethostname() 获得一致的结果?

转载 作者:行者123 更新时间:2023-12-05 08:02:39 24 4
gpt4 key购买 nike

当我在我的 Mac 上调用 gethostname() 时,有时它返回“george”,有时它返回“George.local”。我可以更改什么以使其始终返回相同的内容? (我不在乎哪个;我只希望它保持一致。)

背景:我在运行 10.6 的 Mac 上使用 Unison (www.cis.upenn.edu/~bcpierce/unison/index.html)。 Unison 使用多种事物的组合(其中之一是主机名)来命名保存先前结果的文件。当 gethostname() 返回的字符串发生变化时,Unison 找不到之前的文件。这会导致各种不愉快的行为。

当我最初配置系统时,我将共享控制面板中的名称设置为“George”。目前,当我使用 hostname 命令时,它返回“george”。前几天用Unison的时候,Unison用的是“George.local”这个名字。在过去的几个月里,我多次看到 Unison 出现这种行为。

这段时间我改变了很多东西;我不知道哪个(如果有的话)可能很重要。

1) 我在笔记本电脑上执行此操作。在不同的时间,它连接到不同的路由器,有时根本没有连接。

2) 我可能多次升级过 OS X 版本。对于当前问题,我确定我确实升级了(从 10.6.6 到 10.6.7)。对于以前出现的情况,我不记得了。

3) 有时我使用 Airport 连接,有时使用电缆连接。

谁能阐明 gethostname() 可能在做什么以及为什么它可能返回不同的字符串?

谢谢,帕特

(2011 年 5 月 1 日更新)问题似乎是 OS X 和我的 AT&T DSL 服务的 2Wire 路由器之间的不良交互。当我在没有连接到网络的情况下启动时,主机名返回“George.local”,这是我在共享控制面板中设置的。使用以太网或 AirPort 连接到路由器后,主机名现在返回“george”。

在那个特定的路由器中是否有一些配置选项来控制它?

我的 Verizon FIOS 路由器或 Verizon DSL 都没有发生这种情况。我不记得那些路由器的品牌,但 2Wire 都不是。

最佳答案

我提供一个不同的选择怎么样? gethostbyname() 实际上是一个较旧的 API,实际上不是当前推荐使用的 API。当前推荐使用的 API 是 getaddrinfo(),它已经标准化并且几乎无处不在。您应该考虑改用它!

关于macos - 如何在 OS X 上从 gethostname() 获得一致的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5523307/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com