linux gethostname 源码,Unix_Linux

Unix_Linux 的 gethostname

gethostname, sethostname -获取/设置主机名

内容简介

#include

int gethostname(char *name, size_tlen);

int sethostname(const char *name, size_tlen);

描述

These system calls are used to access or to change the host name of the current processor. Thegethostname() system call returns a null-terminated hostname (set earlier bysethostname()) in the arraynamethat has a length oflenbytes. In case the null-terminated hostname does not fit, no error is returned, but the hostname is truncated. It is unspecified whether the truncated hostname will be null-terminated.

返回值

On success, zero is returned. On error, -1 is returned, anderrnois set appropriately.

错误

标签

描述

EFAULT

name is an invalid address.

EINVAL

len is negative or, for sethostname(), len is larger than the maximum allowed size, or, for gethostname() on Linux/i386, lenis smaller than the actual size. (In this last case glibc 2.1 uses ENAMETOOLONG.)

EPERM

For sethostname(), the caller did not have theCAP_SYS_ADMIN capability.

遵循于

SVr4, 4.4BSD (this interfaces first appeared in 4.2BSD). POSIX.1-2001 specifiesgethostname() but notsethostname().

注意

SUSv2 guarantees that ‘Host names are limited to 255 bytes’. POSIX.1-2001 guarantees that ‘Host names (not including the terminating null byte) are limited to HOST_NAME_MAX bytes’.

glibc注意事项

The GNU C library implementsgethostname() as a library function that callsuname(2) and copies up tolenbytes from the returnednodenamefield intoname. Having performed the copy, the function then checks if the length of thenodenamewas greater than or equal tolen, and if it is, then the function returns -1 witherrnoset toENAMETOOLONG. Versions of glibc before 2.2 handle the case where the length of thenodenamewas greater than or equal tolendifferently: nothing is copied intonameand the function returns -1 witherrnoset toENAMETOOLONG.

另请参阅

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值