|
About this
implementation of hostname
This has been tested
on OS/390 V2R5.
Unlike the hostname
command on some other POSIX superset platforms, this version does
not support setting the host name. Setting the host name is
specific to each AF_INET PFS.
This hostname
command does not currently support binding to a specific PFS via an
environment variable or any other mechanism.
Using the hostname
command
Enter "hostname" to
display the full hostname with domain name (if specified to the
transport driver). Enter "hostname -s" to see just the host name
without the domain name.
You could use your
host name in your shell prompt as follows (optimized for
speed):
Building the
hostname command
Compile it from the
shell with the c89 command:
c89 -o hostname hostname.c
Here is the source for
hostname.c:
#include <stdio.h>
#include <string.h>
#include <unistd.h>
int main(int argc,char **argv)
{
char *dotpos;
char hostname[2000 ];
int dontPrintDomain = 0, rc = 0;
if (argc == 2 &&
!strcmp(argv[1],"-s"))
dontPrintDomain = 1;
else if (argc != 1)
{
fprintf(stderr,
"Usage: %s [-s]\n"
"Specify \"-s\" to print the host name without\n"
"the domain name.\n",
argv[0]);
rc = 1;
}
if (!rc)
{
rc = gethostname(hostname,sizeof(hostname));
if (rc)
{
perror("gethostname");
rc = 1;
}
else
{
if (dontPrintDomain)
{
dotpos = strchr(hostname,'.');
if (dotpos)
*dotpos = '\0';
}
printf("%s\n",hostname);
}
}
return rc;
}
If you have
comments, feel free to reach me, Jeff Trawick, at trawick@us.ibm.com.
|