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

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

PARAMETER
       inputname	   Pointer to a	string of characters

DESCRIPTION
       The  namealloc function creates a dictionnary 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  beeing  introduced	 in  the  symbol table.	This is	needed
       because 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 modifing	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)

NAME | SYNOPSYS | PARAMETER | DESCRIPTION | RETURN VALUE | EXAMPLE | DIAGNOSTICS | SEE ALSO

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

home | help