获取容器主机名

题目介绍

本题目要求参与者完成一个C语言程序,该程序的功能是获取并输出当前容器(或虚拟机)的主机名。

本题可参考Linux系统编程基础

题目要求

  • 完成给定程序中的 main 函数。
  • 函数的作用是获取当前环境(容器或虚拟机)的主机名,并将其作为程序输出。

输入

  • 无输入要求。

输出

  • 应输出当前容器或虚拟机的主机名,例如 admin_virtual_machine

代码介绍

main.c

主函数文件,需要实现获取主机名的逻辑。

#include <stdio.h>
#include <unistd.h>

int main () {
    // TODO
}

详细提示信息

获取主机名

在Unix-like系统中,可以使用系统调用 gethostname 来获取当前主机名。这个函数需要一个字符数组作为参数,并将主机名复制到这个数组中。

使用 gethostname

  • 声明一个足够大的字符数组来存储主机名,通常这个数组的大小至少为 HOST_NAME_MAX
  • 调用 gethostname 函数,传入字符数组和数组的大小作为参数。
  • 检查 gethostname 的返回值,确保主机名被成功获取。
  • 使用 printfputs 函数输出获取到的主机名。

注意事项

  • 确保包含正确的头文件,以便使用 gethostname 函数。
  • 检查 gethostname 的返回值,并对可能的错误进行处理。
  • 确保输出的主机名是正确的,并且符合题目要求的格式。
  • 参与者需要根据题目要求,使用 gethostname 函数完成 main 函数的实现,确保程序能够正确获取并输出当前容器或虚拟机的主机名。通过这个练习,可以加深对Unix系统调用和主机名获取机制的理解。