⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mpehname.c

📁 fortran并行计算包
💻 C
字号:
/*   (C) 2001 by Argonne National Laboratory.       See COPYRIGHT in top-level directory.*/#ifdef HAVE_MPICHCONF_H#include "mpichconf.h"#else#include "mpe_misc_conf.h"#endif#include "mpe_misc.h"#ifdef HAVE_STRING_H#include <string.h>#endif#if defined(HAVE_UNAME)#include <sys/utsname.h>#endif#if defined(HAVE_GETHOSTBYNAME)#if defined(HAVE_NETDB_H)/* Some Solaris systems can't compile netdb.h */#include <netdb.h>#else#undef HAVE_GETHOSTBYNAME#endif#endif /* HAVE_GETHOSTBYNAME */#if defined(HAVE_SYSINFO)#if defined(HAVE_SYS_SYSTEMINFO_H)#include <sys/systeminfo.h>#else#ifdef HAVE_SYSINFO#undef HAVE_SYSINFO#endif#endif#endif/*@    MPE_GetHostName -      Parameters:+ name : character pointer- nlen : integer@*/void MPE_GetHostName( name, nlen )char *name;int  nlen;{/* This is the prefered form, IF IT WORKS. */#if defined(HAVE_UNAME) && defined(HAVE_GETHOSTBYNAME)    struct utsname utname;    struct hostent *he;    uname( &utname );    he = gethostbyname( utname.nodename );    /* We must NOT use strncpy because it will null pad to the full length       (nlen).  If the user has not allocated MPI_MAX_PROCESSOR_NAME chars,       then this will unnecessarily overwrite storage.     */    /* strncpy(name,he->h_name,nlen); */    {	char *p_out = name;	char *p_in  = he->h_name;	int  i;	for (i=0; i<nlen-1 && *p_in; i++) 	    *p_out++ = *p_in++;	*p_out = 0;    }#else#if defined(HAVE_UNAME)    struct utsname utname;    uname(&utname);    /* We must NOT use strncpy because it will null pad to the full length       (nlen).  If the user has not allocated MPI_MAX_PROCESSOR_NAME chars,       then this will unnecessarily overwrite storage.     */    /* strncpy(name,utname.nodename,nlen); */    {	char *p_out = name;	char *p_in  = utname.nodename;	int  i;	for (i=0; i<nlen-1 && *p_in; i++) 	    *p_out++ = *p_in++;	*p_out = 0;    }#elif defined(HAVE_GETHOSTNAME)    gethostname( name, nlen );#elif defined(HAVE_SYSINFO)    sysinfo(SI_HOSTNAME, name, nlen);#else     strncpy( name, "Unknown!", nlen );#endif/* See if this name includes the domain */    if (!strchr(name,'.')) {    int  l;    l = strlen(name);    name[l++] = '.';    name[l] = 0;  /* In case we have neither SYSINFO or GETDOMAINNAME */#if defined(HAVE_SYSINFO) && defined(SI_SRPC_DOMAIN)    sysinfo( SI_SRPC_DOMAIN,name+l,nlen-l);#elif defined(HAVE_GETDOMAINNAME)    getdomainname( name+l, nlen - l );#endif    }#endif}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -