问题
今天写一个程序需要跑在不同的设备上,需要获取设备名称(hostname
),中间发现嵌入式设备端有些指令没有,比如hostname
指令,于是需要一个通用的方法来获取主机名;
结果
使用指令uname -n
来获取设备名称;
本来打算使用hostname
可是发现该指令在设备上没有包含,只好换种方法;
通常在Linux系统中,/etc/hostname
以及/etc/hosts
用以保存设备主机名,可以通过查看该文件找到设备的主机名;但是在OpenWRT中,/etc
目录下不存在hostname
文件,并且hosts
文件中未包含显示的主机名,查询得知OpenWRT中主机名保存在/etc/config/system
中hostname
那一项;存储名字的文件不同,不方便统一查找,但也可以对不同情况做不同策略的查找,代码不具有通用性,就未做分别读去汇合到一起的策略;使用uname
指令更为直接统一,更具有跨平台通用型;