<commit_before>#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include "roken.h"

#ifndef HAVE_GETHOSTNAME

#ifdef HAVE_SYS_UTSNAME_H
#include <sys/utsname.h>
#endif

/*
 返回本机的完整主机名，最大namelen个字符。如果namelen很大的话，name将以NULL结尾。
 也就是主机名长度小于namelen的时候，以NULL来补全。
 这个函数成功时返回0，否则返回-1。
 */

int		ROKEN_LIB_FUNCTION
gethostname(char *name, int namelen)
{
#if defined(HAVE_UNAME)
	{
		struct utsname	utsname;
		int		ret;

		ret = uname(&utsname);
		if (ret < 0)
			return ret;
		strlcpy(name, utsname.nodename, namelen);
		return 0;
	}
#else
			strlcpy       (name, "some.random.host", namelen);
	return 0;
#endif
}

#endif				/** GETHOSTNAME */

/*
  utsname结构体在sys/utsname.h里面定义 
  struct utsname{
  	char sysname[_SYS_NMLN]; 系统名称 uname -s
  	char nodename[_SYS_NMLN]; 主机节点名称 uname -n
 	char release[_SYS_NMLN]; 系统发布版本 uame -r
  	char version[_SYS_NMLN]; 系统版本 uname -v
  	char machine[_SYS_NMLN]; 系统硬件架构 uname -m 
 };
 */<commit_msg>修改下代码格式，indent不好看。<commit_after>#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include "roken.h"

#ifndef HAVE_GETHOSTNAME

#ifdef HAVE_SYS_UTSNAME_H
#include <sys/utsname.h>
#endif

/*
 返回本机的完整主机名，最大namelen个字符。如果namelen很大的话，name将以NULL结尾。
 也就是主机名长度小于namelen的时候，以NULL来补全。
 这个函数成功时返回0，否则返回-1。
 */

int	ROKEN_LIB_FUNCTION gethostname(char *name, int namelen)
{
	#if defined(HAVE_UNAME)
		{
			struct utsname	utsname;
			int		ret;

			ret = uname(&utsname);
			if (ret < 0)
				return ret;
			strlcpy(name, utsname.nodename, namelen);
			return 0;
		}
	#else
			strlcpy(name, "some.random.host", namelen);
			return 0;
	#endif
}

#endif				/** GETHOSTNAME */

/*
  utsname结构体在sys/utsname.h里面定义 
  struct utsname{
  	char sysname[_SYS_NMLN]; 系统名称 uname -s
  	char nodename[_SYS_NMLN]; 主机节点名称 uname -n
 	char release[_SYS_NMLN]; 系统发布版本 uame -r
  	char version[_SYS_NMLN]; 系统版本 uname -v
  	char machine[_SYS_NMLN]; 系统硬件架构 uname -m 
 };
 */
{'fraction_non_alphanumeric': 0.11954765751211632, 'fraction_numerical': 0.005385029617662897, 'mean_word_length': 4.118457300275482, 'pattern_counts': {'":': 0, '<': 9, '<?xml version=': 0, '>': 7, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2962339', 'n_tokens_mistral': 962, 'n_tokens_neox': 975, 'n_words': 159}