Getting Hostname in C Programs in Linux

In C, how to get the hostname of the node?

In C, you may use the gethostname function.

    #include <unistd.h>

    int gethostname(char *name, size_t namelen); 

The gethostname() function shall return the standard host name for the current machine. The namelen argument shall specify the size of the array pointed to by the name argument. The returned name shall be null-terminated, except that if namelen is an insufficient length to hold the host name, then the returned name shall be truncated and it is unspecified whether the returned name is null-terminated.

Host names are limited to {HOST_NAME_MAX} bytes.

One example:

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

    int main(void) {
      char hostname[HOST_NAME_MAX + 1];
      gethostname(hostname, HOST_NAME_MAX + 1);

      printf("hostname: %s\n", hostname);

      return EXIT_SUCCESS;
    }

Execution result:

    $ gcc a.c -o a
    $ ./a
    hostname: host001

Similar Posts

  • |

    How to Use MPlayer to Play DVD Directories / ISO Files / Disks

    MPlayer is a universal (nearly) movie/music player on Linux and many more systems. It’s also my favourite player and MPlayer plays movie or music files in any format that I drop to it. Now, let’s take a look at how to use MPlayer play DVD. MPlayer plays “DVD” in many formats: DVD disks, ISO files,…

  • How to set up Firefox Sync?

    How to set up Firefox Sync? The online Firefox help provides a very good tutorial on setting up Firefox sync across computers and other devides: http://support.mozilla.org/en-US/kb/how-do-i-set-up-firefox-sync Read more: Firefox: how to sync bookmarks saved on iOS devices to Firefox on PC? Is Firefox Sync safe, that is, could someone else read my password saved in…

  • | |

    Hadoop Installation Tutorial (Hadoop 1.x)

    Update: If you are new to Hadoop and trying to install one. Please check the newer version: Hadoop Installation Tutorial (Hadoop 2.x). Hadoop mainly consists of two parts: Hadoop MapReduce and HDFS. Hadoop MapReduce is a programming model and software framework for writing applications, which is an open-source variant of MapReduce that is initially designed…

  • MFC程序使用系统风格界面

    VC6默认编译出来的程序在XP下Luma风格下运行也是Windows的经典界面, 有损界面的美观与统一. VC2008默认设置下如果不是使用的unicode也是如此. 本文给出使VC6和VC2008可以编译出使用系统界面风格的解决方案. 1. 使VC6编译出使用系统风格的程序 步骤如下: 1) 创建一个.manifest文件的资源. 在res/文件夹下创建一个跟以程序名加.manifest的文件, 如果程序为test.exe, 则创建test.exe.manifest 文件可由此下载: https://www.systutorials.com/t/g/programming/resultcollector.manifest/ 注意要使用utf-8编码保存。 2) 将新定义的资源加入到.rc2文件中, 类型设为24. 打开res/文件夹下的.rc2文件, 在其中加入如下定义: 1 24 MOVEABLE PURE “res/test.exe.manifest” 其中的文件地址按1)步中修改的设置即可. 之后编译即可, 为了使程序界面可能充分利用系统的界面特性, 可以将界面字体设置为TrueType类型的, 利用Windows XP等系统的屏幕字体平滑特性. 2. 使VC2008编译出使用系统风格的程序 在VC2008下就比较简单了, 如果程序字符集使用unicode则默认就是使用系统界面风格的, 如果选择其它的类型, 则编辑下stdafx.h即可. 最后面部分找到这么一段: #ifdef _UNICODE #if defined _M_IX86 #pragma comment(linker,”/manifestdependency:”type=’win32′ name=’Microsoft.Windows.Common-Controls’ version=’6.0.0.0′ processorArchitecture=’x86′ publicKeyToken=’6595b64144ccf1df’ language=’*'””) #elif defined _M_IA64 #pragma comment(linker,”/manifestdependency:”type=’win32’…

  • How to Print Notes on a PDF File with Acrobat, Adobe Reader and Foxit Reader

    Print PDF with notes is not that straightforward, especially when you want specific styles of the printed notes/comments. In this post, we introduce how to print notes on a PDF file with Acrobat, Adobe Reader and Foxit Reader. Acrobat The detailed method is posted on Adobe’s blog: Printing Sticky Notes on a PDF. Excerpt of…

4 Comments

Leave a Reply

Your email address will not be published. Required fields are marked *