gethostname用于获取Linux系统的主机名。
1.头文件
#include <unistd.h>
2.函数原型
int gethostname(char *name, size_t len);
3.参数
name: 一个指向字符数组的指针,用于存储主机名。该数组应足够大,以容纳主机名及其终止的空字符('')。
len:name 参数的长度。它指定数组 name 的大小,确保不会溢出。
4.返回值
成功,gethostname 返回 0。失败,返回 -1,并设置 errno 以指示错误原因。
错误代码:在调用失败时,errno 可能被设置为以下值之一:
⚫EINVAL:指定的 len 参数小于 1,或 name 为 NULL。
⚫EFAULT:name 指针指向无效内存。
⚫ENAMETOOLONG:主机名的长度超过了 len。
5.示例:(使用gethostname获取系统主机名称)
| #include <stdio.h>
#include <unistd.h> #include <errno.h> #include <string.h> int main() { char hostname[256]; // 创建一个字符数组来存储主机名 // 调用 gethostname if (gethostname(hostname, sizeof(hostname)) == -1) { perror("gethostname"); // 打印错误信息 return 1; // 返回错误 } // 打印主机名 printf("Hostname: %sn", hostname); return 0; // 成功 } |
6.查看测试结果
| Hostname: ubuntu |
223