Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
NAMEALLOC(3)		     MBK UTILITY FUNCTIONS		  NAMEALLOC(3)

NAME
       namealloc - hash	table for strings

SYNOPSIS
       #include	"mut.h"
       char *namealloc(inputname)
       char *inputname;

PARAMETER
       inputname	   Pointer to a	string of characters

DESCRIPTION
       The  namealloc  function	creates	a dictionary of	names in mbk.  It war-
       ranties equality	on characters string if	the pointers to	these  strings
       are equal, at strcmp(3) meaning.	This means also	that there is a	single
       memory address for a given string.
       The  case  of the letters do not	matter.	All names are changed to lower
       case before being introduced in the symbol table. This  is  needed  be-
       cause most of the file format do	not check case.
       namealloc  is  used by all mbk utility function using names, so its use
       should be needed	only when directly filling or modifying	the structure,
       or when having to compare an external string to mbk internal ones. This
       should speed up string comparisons.
       One shall never modify the contains of a	string pointed to by a	result
       of  namealloc,  since all the field that	points to this name would have
       there values modified, and that there is	no chance that	the  new  hash
       code  will  be  the same	as the old one,	so pointer comparison would be
       meaningless. All	string used by namealloc  are  constants  string,  and
       therefore must be left alone.

RETURN VALUE
       namealloc returns a string pointer.  If the inputname is	already	in the
       hash  table, then its internal pointer is returned, else	a new entry is
       created,	and then the new pointer returned.

EXAMPLE
       #include	"mut.h"
       #include	"mlo.h"
       lofig_list *find_fig(name)
       char *name;
       {
       lofig_list *p;
	  name = namealloc(name);
	  for (p = HEAD_LOFIG; p; p = p->NEXT)
	     if	(p->NAME == name) /* pointer equality */
		return p;
	  return NULL;
       }

DIAGNOSTICS
       namealloc can be	used only after	a call to mbkenv(3).

SEE ALSO
       mbk(1).

ASIM/LIP6			October	1, 1997			  NAMEALLOC(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=namealloc&sektion=3&manpath=FreeBSD+Ports+15.0>

home | help