throbber
LSEARCH ( 3C )
`
`LSEARCH ( 3C )
`
`NAME
`
`linear search and update
`
`lsearch -
`SYNOPSIS
`#include < stdio.h >
`#include < search.h >
`char *lsearch «char *)key, (char *)base,
`nelp, sizeof(*key), compar)
`unsigned *nelp;
`int (*compar)( );
`char *lfind «char *)key, (char *)base,
`nelp, sizeof(*key), compar)
`unsigned *nelp;
`int (*compar)( );
`DESCRIPTION
`Lsearch is a linear search routine generalized from Knuth (6.1)
`Algorithm S. It returns a pointer into a table indicating where a
`datum may be found. If the datum does not occur, it is added at
`the end of the table. Key points to the datum to be sought in the
`table. Base points to the first element in the table. Nelp points
`to an integer containing the current number of elements in the
`table. The integer is incremented if the datum is added to the
`table. Compar is the name of the comparison function which the
`user must supply (strcmp, for example).
`It is called with two
`arguments that point to the elements being compared. The func(cid:173)
`tion must return zero if the elements are equal and non-zero other(cid:173)
`wise.
`Lfind is the same as Lsearch except that if the datum is not
`found, it is not added to the table. Instead, a NULL pointer is
`returned.
`
`NOTES
`
`The pointers to the key and the element at the base of the table
`should be of type pointer-to-element, and cast to type pointer-to(cid:173)
`character.
`The comparison function need not compare every byte, so arbi(cid:173)
`trary data may be contained in the elements in addition to the
`values being compared.
`Although declared as type pointer-to-character, the value returned
`should be cast into type pointer-to-element.
`EXAMPLE
`This fragment will read in less than TABSIZE strings of length
`less than ELSIZE and store them in a table, eliminating dupli(cid:173)
`cates.
`
`#include <stdio.h>
`#include <search.h>
`#define T ABSIZE 30
`#define ELSIZE 120
`char line[ELSIZE], tab[TABSIZE][ELSIZE],
`*lsearch( );
`
`- 1 -
`
`Teradata, Exh. 1028, p. 609 of 798
`
`

`

`LSEARCH ( 3C )
`
`LSEARCH ( 3C )
`
`unsigned nel = 0;
`int strcmp( );
`
`while (fgets(line, ELSIZE, stdin) != NULL &&
`nel < TABSIZE)
`(void) Isearch(Iine,( char *)tab,&nel,
`ELSIZE, strcmp);
`
`SEE ALSO
`bsearch(3C), hsearch(3C), string(3C), tsearch(3C).
`DIAGNOSTICS
`If the searched for datum is found, both lsearch and lfind return a
`pointer to it. Otherwise, lfind returns NULL and lsearch returns a
`pointer to the newly added element.
`
`BUGS
`
`Undefined results can occur if there is not enough room in the
`table to add a new item.
`
`- 2 -
`
`Teradata, Exh. 1028, p. 610 of 798
`
`

`

`MALLOC(3C)
`
`MALLOC(3C)
`
`NAME
`
`malloc, free, realloc, calloc - main memory allocator
`SYNOPSIS
`char *malloc (size)
`unsigned size;
`void free (ptr)
`char *ptr;
`char *realloc (ptr, size)
`char *ptr;
`unsigned size;
`char *calloc (nelem, elsize)
`unsigned nelem, elsize;
`int mallopt (cmd, value)
`int cmd, value;
`DESCRIPTION
`Malloe and free provide a simple general-purpose memory alloca(cid:173)
`tion package. MaUoe returns a pointer to a block of at least st"ze
`bytes suitably aligned for any use.
`The argument to free is a pointer to a block previously allocated
`by maUoe; after free is performed this space is made available for
`further allocation, but its contents are left undisturbed.
`Undefined results will occur if the space assigned by maltoe is
`overrun or if some random number is handed to free.
`MaUoe allocates the first big enough contiguous reach of free space
`found in a circular search from the last block allocated or freed,
`coalescing adjacent free blocks as it searches. It calls sbrk (see
`brk(2)) to get more memory from the system when there is no
`suitable space already free.
`Realtoe changes the size of the block pointed to by ptr to st"ze
`bytes and returns a pointer to the (possibly moved) block. The
`contents will be unchanged up to the lesser of the new and old
`If no free block of st'ze bytes is available in the storage
`sizes.
`arena, then realtoe will ask maltoe to enlarge the arena by st'ze
`bytes and will then move the data to the new space.
`Realtoe also works if ptr points to a block freed since the last call
`of maltoe, realloe, or eaUoe; thus sequences of free, maltoe and
`realtoe can exploit the search strategy of maUoe to do storage
`compaction.
`Caltoe allocates space for an array of nelem elements of size
`elsize. The space is initialized to zeros.
`Mallopt provides for control over the allocation algorithm. The
`available values for emd are:
`Set maxfast to value. The algorithm allo(cid:173)
`cates all blocks below the size of maxfast
`in large groups and then doles them out
`very quickly. The default value for max(cid:173)
`fast is 24.
`
`- 1 -
`
`Teradata, Exh. 1028, p. 611 of 798
`
`

`

`MALLOC(aC)
`
`MALLOC(3C)
`
`Set numlblks to value. The above men(cid:173)
`tioned
`"large
`groups"
`each
`contain
`numlblks blocks. Numlblks must be greater
`than O. The default value for numlblks is
`100.
`Set grain to value. The sizes of all blocks
`smaller than maxfast are considered to be
`rounded up to
`the nearest multiple of
`grain. Grain must be greater than O. The
`default value of grain
`is
`the smallest
`number of bytes which will allow align(cid:173)
`ment of any data type. Value will be
`rounded up to a multiple of the default
`when grain is set.
`Preserve data in a freed block until the
`next maUoe, reaUoe, or eaUoe. This option
`is provided only for compatibility with the
`old version of maUoe and is not recom(cid:173)
`mended.
`These values are defined in the < malloc.h> header file.
`MaUopt may be called repeatedly, but may not be called after the
`first small block is allocated.
`Each of the allocation routines returns a pointer to space suitably
`aligned (after possible pointer coercion) for storage of any type of
`object.
`SEE ALSO
`brk (2).
`DIAGNOSTICS
`MaUoe, realloe and ealloe return a NULL pointer if there is not
`enough available memory. When realloe returns NULL, the block
`pointed to by ptr is left intact. If mallopt is called after any allo(cid:173)
`cation, or if cmd or value are invalid, non-zero is returned. Other(cid:173)
`wise, it returns zero.
`
`NOTE
`
`Search time increases when many objects have been allocated;
`that is, if a program allocates but never frees, then each successive
`allocation takes longer.
`
`- 2 -
`
`Teradata, Exh. 1028, p. 612 of 798
`
`

`

`MA THERR (3M)
`
`MA THERR (3M)
`
`NAME
`
`matherr - error-handling function
`SYNOPSIS
`#include < math.h >
`int matherr (x)
`struct exception *x;
`DESCRIPTION
`Matherr is invoked by functions in the Math Library when errors
`are detected. Users may define their own procedures for handling
`errors by including a function named matherr in their programs.
`Matherr must be of the form described above. A pointer to the
`exception structure x will be passed to the user-supplied matherr
`function when an error occurs. This structure, which is defined in
`the < math.h > header file, is as follows:
`struct exception {
`int type;
`char *name;
`double argl, arg2, retval;
`
`};
`The element type is an integer describing the type of error that
`has occurred, from the following list of constants (defined in the
`header file):
`domain error
`DOMAIN
`singularity
`SING
`OVERFLOW
`overflow
`UNDERFLOW
`underflow
`total loss of significance
`TLOSS
`partial loss of significance
`PLOSS
`The element name points to a string containing the name of the
`function that had the error. The variables argl and arg2 are the
`arguments to the function that had the error. Retval is a double
`that is returned by the function having the error. If it supplies a
`return value, the user's matherr must return non-zero.
`If the
`default error value is to be returned, the user's matherr must
`return o.
`If matherr is not supplied by the user, the default error-handling
`procedures, described with the math functions involved, will be
`invoked upon error. These procedures are also summarized in the
`table below. In every case, errno is set to non-zero and the pro(cid:173)
`gram continues.
`EXAMPLE
`matherr(x)
`register struct exception *x;
`{
`
`switch (x- > type) {
`case DOMAIN:
`case SING: /* print message and abort */
`fprintf(stderr, "domain error in %s\n", x- >name);
`abort( );
`
`- 1 -
`
`Teradata, Exh. 1028, p. 613 of 798
`
`

`

`MA THERR (3M)
`
`MA THERR ( 3M)
`
`case OVERFLOW:
`if (!strcmp("exp", x- >name)) {
`/* if exp, print message, return the argument */
`fprintf(stderr, "exp of %f\n", x- >arg1);
`x- >retval = x- >arg1;
`} else if (!strcmp("sinh", x- >name)) {
`/* if sinh, set errno, return 0 */
`errno = ERANGE;
`x- >retval = 0;
`
`} else
`
`/* otherwise, return HUGE */
`x- >retval = HUGE;
`
`break;
`case UNDERFLOW:
`return (0); /* execute default procedure */
`case TLOSS:
`case PLOSS:
`/* print message and return 0 */
`fprintf(stderr, "loss of significance in %s\n", x->name);
`x- >retval = 0;
`break;
`
`}
`return (1);
`
`}
`
`BESSEL:
`yO, yl, yn
`(neg. no.)
`
`EXP:
`
`POW:
`(neg.)**(non-
`int.),O**O
`
`LOG:
`log(O):
`log(neg.):
`
`SQRT:
`
`GAMMA:
`
`HYPOT:
`
`SINH, COSH:
`
`SIN, COS:
`
`TAN:
`
`ACOS,ASIN:
`
`DEFAULT ERROR HANDLING PROCEDURES
`TypeB 0/ ErrorB
`SING OVERFLOW UNDERFLOW
`-
`-
`
`DOMAIN
`-
`M, -H
`
`H
`-
`
`0
`-
`
`TLOSS
`-
`-
`
`PLOSS
`*
`-
`
`-
`-
`
`-
`-
`-
`-
`-
`-
`M, *
`*
`-
`
`0
`
`0
`-
`
`-
`-
`-
`-
`-
`-
`-
`-
`-
`
`-
`-
`-
`
`-
`-
`-
`-
`-
`-
`
`M,O
`
`0
`-
`
`-
`-
`M,D
`
`-
`M,-H
`
`M,O
`-
`-
`-
`-
`-
`M,D
`
`-
`-
`-
`
`M,-H
`-
`-
`M,H
`-
`-
`-
`-
`-
`
`H
`
`H
`-
`
`-
`-
`-
`-
`H
`
`H
`-
`H
`-
`
`- 2 -
`
`Teradata, Exh. 1028, p. 614 of 798
`
`

`

`MA THERR (3M)
`
`MA THERR ( 3M)
`
`ABBREVIATIONS
`*
`.Af3 much as possible of the value is returned.
`M Message is printed.
`H
`HUGE is returned.
`-H
`-HUGE is returned.
`o
`0 is returned.
`
`- 3-
`
`Teradata, Exh. 1028, p. 615 of 798
`
`

`

`MEMORY(3C)
`
`MEMORY(3C)
`
`NAME
`
`memccpy, memchr, memcmp, memcpy, memset - memory opera(cid:173)
`tions
`SYNOPSIS
`#include < memory.h >
`char *memccpy (81, 82, c, n)
`char *81, *82;
`int c, n;
`char *memchr (8, c, n)
`char *8;
`int c, n;
`int memcmp (81, 82, n)
`char *81, *82;
`int n;
`char *memcpy (81, 82, n)
`char *81, *82;
`int n;
`char *mem8et (8, c, n)
`char *8;
`int c, n;
`DESCRIPTION
`These functions operate efficiently on memory areas (arrays of
`characters bounded by a count, not terminated by a null charac(cid:173)
`ter). They do not check for the overflow of any receiving memory
`area.
`Memccpy copies characters from memory area 82 into 81, stop(cid:173)
`ping after the first occurrence of character c has been copied, or
`It
`after n characters have been copied, whichever comes first.
`returns a pointer to the character after the copy of c in 81, or a
`NULL pointer if c was not found in the first n characters of 82.
`Memchr returns a pointer to the first occurrence of character c in
`the first n characters of memory area 8, or a NULL pointer if c
`does not occur.
`Memcmp compares its arguments, looking at the first n characters
`only, and returns an integer less than, equal to, or greater than 0,
`according as 81 is lexicographically less than, equal to, or greater
`than 82.
`Memcpy copies n characters from memory area 82 to 81.
`returns 81.
`Mem8et sets the first n characters in memory area 8 to the value
`of character c. It returns 8 .
`
`It
`
`NOTE
`
`BUGS
`
`For user convenience, all these functions are declared in the
`optional < memory.h > header file.
`
`Memcmp uses native character comparison, which IS signed on
`PDP-lls, unsigned on other machines.
`
`- 1 -
`
`Teradata, Exh. 1028, p. 616 of 798
`
`

`

`MEMORY(3C)
`
`MEMORY(3C)
`
`Character movement is performed differently in different imple(cid:173)
`mentations. Thus overlapping moves may yield surprises.
`
`- 2 -
`
`Teradata, Exh. 1028, p. 617 of 798
`
`

`

`MENU(3T)
`
`(AT&T UNIX PC only)
`
`MENU(3T)
`
`NAME
`
`menu - display and accept menus
`SYNOPSIS
`#include <menu.h>
`int menu(menu, op)
`menu_t *menu;
`int op;
`DESCRIPTION
`This routine manipulates a menu as determined by the operation
`code (op). If the op arg is M~EGIN, the menu is initialized and
`If op is M_INPUT, user input is accepted.
`If op is
`displayed.
`M_END, the menu is terminated and removed from the display.
`If op
`is M_DESEL, all currently-selected items are de-selected
`before the menu is processed. These functions may be combined
`many
`ways.
`By
`specifying
`in
`(M_DESEL I M~EGIN I M_INPUT I M_END), the caller creates
`a "pop-up)) menu which is initialized (displayed), used for input,
`then removed. Generally, (M~EGIN I M_INPUT) is used for the
`first call, M_INPUT for each subsequent interaction, and M_END
`when the menu is to be discarded. M_DESEL can be added to
`clear bad choices after an error.
`During the M_INPUT function, the user may point to items with
`the mouse or with the keyboard (arrows, Prev, Next, Beg, Home,
`End). The user may mark entries with the mouse or keyboard
`(Slect, Mark), or may qualify one or more items by typing. The
`Cancl, Clear Line, Back Space, and Return keys perform their
`generic editing functions. For larger menus, the Roll and Page
`keys may be used to scroll through choices which do not fit in the
`prevailing window.
`All other keys, including Enter, are returned to the caller.
`The menu structure has the following form:
`
`typedef struct
`{
`
`char
`char
`char
`char
`char
`char
`char
`char
`char
`int
`track_t
`int
`int
`int
`mitem_t
`mitem_t
`
`*m_Iabel;
`*m_title;
`*m_prompt;
`m_rows;
`m_cols;
`m_iwidth;
`m_iheight;
`m_flags;
`m_Ibuf[M_MAXLINE];
`m_win;
`*m_track;
`m_oldwidth;
`m_oldheight;
`m_selcnt;
`*m_items;
`*m_curi;
`
`1* menu label * /
`1* menu title * /
`1* menu prompt * /
`1* desired rows * /
`1* desired co Is * /
`1* item width * /
`/* item height * /
`1* flags * /
`1* input buffer * /
`/* window pointer * /
`1* menu track list ptr * /
`1* last window width * /
`/* last window height * /
`/* count of # selected * /
`1* pointer to items * /
`1* current item * /
`
`- 1 -
`
`Teradata, Exh. 1028, p. 618 of 798
`
`

`

`MENU (3T)
`
`(AT&T UNIX PC only)
`
`MENU (3T)
`
`mitem_t *m_topi;
`} menu_t;
`
`/* item at top of dpy * /
`
`M_label is displayed in the menu's window label line. If m_label
`is NULL, no label is displayed.
`M_title is a title for the menu. If m_title is NULL, the menu is
`If m_title contains newline charac(cid:173)
`displayed without any title.
`ters, all but the first line of the title are underlined.
`M_prompt (when non-NULL) is an prompt for the menu. All
`prompts are displayed on the system prompt line, generally
`located at the bottom of the display.
`M_rows and m_cols allow the caller to specify the number of
`rows and columns of items. Either or both of these values may be
`zero, in which case menu will try to pick "good" values. It is
`quite common to specify "zero" rows and one column to force out(cid:173)
`put to be vertical. When both m_rows and m_cols are zero,
`menu tries to fit the menu into an appealing rectangle.
`M_iwidth specifies a maximum width for each item. If m_iwidth
`is zero, menu will display as much of the item as possible given
`If m_iwidth is non-zero, items
`the available window real-estate.
`are automatically truncated to that width, regardless of other
`parameters. This is very useful when generating multi-column
`menus where the caller wishes to prevent one long item from dis(cid:173)
`rupting the columnar output. M_IWIDTH IS NOT YET IMPLE(cid:173)
`MENTED.
`M_iheight allows the caller to specify the number of rows per item
`on the display. Newline characters in the item's name cause
`menu to advance to the next row. If m_iheight is zero, one-row
`items are assumed. M_IHEIGHT IS NOT YET IMPLEMENTED.
`M.JI,ags contains the M_SINGLE flag which prohibits the user
`the menu.
`If the
`from selecting more than one item from
`M_SINGLE flag is off, the user may select multiple items from the
`menu. The M_VSEWIN flag, if set, will cause menu to use the
`instead of creating its own.
`window supplied
`in m_win
`If
`M_VSEWIN is set, M_BEGIN operations will re-size the window
`( as necessary) and M_END operations do not delete the window.
`The M_ WINNEW flag causes menu to use the "new" algorithm
`to place the window. Basically, the new algorithm looks for rela(cid:173)
`tively empty screen space to place the window. M_ WINSON
`causes menu to use the "son" algorithm which causes the new
`to slightly overlap
`the current window.
`If neither
`window
`M_ WINNEW nor M_ WINSON is given, the "popup" algorithm is
`used. This causes the new window to appear near the middle of
`the current window, inside it if possible. The M_NOMOVE,
`M_NOHELP, and M_NORESIZE flags, if set, prevent the Move,
`Help and Resize icons, respectively, from being displayed on the
`menu border. The M_ASISTITLE flag, if set, causes the menu
`title to be displayed as supplied by the user, i.e., without center(cid:173)
`mg.
`
`- 2 -
`
`Teradata, Exh. 1028, p. 619 of 798
`
`

`

`MENU(3T)
`
`(AT&T UNIX PC only)
`
`MENU (3T)
`
`M_lbuf is an array of characters which is used to assemble typed
`input. It is always returned to the caller in case it is necessary to
`record keystrokes. In addition, the user may enter keystroke data
`which does not match any items. In this case m_selcnt is set to
`zero on return.
`M_win holds the window identifier associated with this menu. It
`is allocated on an M_BEGIN call, used on subsequent calls, and
`deleted on an M_END call. M_track is a pointer to the mouse(cid:173)
`tracking information required during menu interaction. The space
`for this data is allocated on M_BEGIN and freed on M_END.
`The caller should not use m_track, m_oldwidth, or m_oldheight.
`They may be left un-initialized on call to M_BEGIN. If a value
`must be given (as in a mitem_t initializer), a value of zero should
`be used.
`On return, m_selcnt contains a count of the number of selected
`items.
`M_items points to the array of menu items (see below). M_curi
`points to the current item. The caller should point m_curi to the
`default item. Menu will modify m_curi as the user moves the
`highlighting around in the menu. The list of menu items is ter(cid:173)
`minated by an item whose mCname is NULL. M_topi contains a
`pointer to the item which is at the top of the display. AB the win(cid:173)
`dow scrolls through the menu, m_topi changes to reflect the new
`position of the view. The caller needn't initialize m_topi as menu
`will compute a "good" initial view from the value in m_curi. In
`general, callers will not read the value in m_topi and should never
`write it.
`Each item in the array pointed to by m_items and m_curi has
`the following form:
`typedef struct
`{
`
`char
`char
`int
`} mitem_t;
`
`*mi_name;
`mi_flags;
`mi_val;
`
`1* name of item
`* /
`1* flags
`* /
`1* user-supplied value * /
`
`MCname is the item name, mLjiags contains the M_MARKED
`flag which indicates that this item should be marked (on call)
`and/or was marked (on return) and/or the M_DIMMED flag
`which indicates that this item should be displayed in lower(cid:173)
`intensity. MCval
`is unused by menu and
`is available for
`application-specific data. Often, mCval contains a small positive
`integer identifying the particular choice.
`EXAMPLE
`The following program illustrates a simple single-selection menu:
`#include <tam.h>
`#include <menu.h>
`#include <stdio.h>
`#include <kcodes.h>
`
`- 3-
`
`Teradata, Exh. 1028, p. 620 of 798
`
`

`

`MENU(3T)
`
`(AT&T UNIX PC only)
`
`MENU(3T)
`
`mitem_t cmditems[] =
`{
`
`"Add",
`"Advance",
`"Backspace",
`"Copy",
`"Create",
`"Delete",
`"nllmn"
`-
`----r
`)
`"Examine",
`"Exit",
`"Finish",
`" *Weird",
`a,
`
`0,0,
`a),
`0,2,
`0,3,
`0,4,
`0,5,
`() f)
`..... J ...,. )
`0,7,
`0,8,
`0,9,
`0,10,
`0,0
`
`};
`
`};
`
`menu_t cmdmenu =
`{
`
`"Single",
`"Commands",
`"Pick a command from the list",
`0,1,0,0,
`M_SINGLE,
`{a},
`0,0,0,0,0,
`cmditems,
`cmditems,
`a
`
`mitem_t multitems[ 1 =
`{
`
`" January",
`"February",
`"March",
`"April",
`"May",
`"June",
`"July",
`"August",
`"September",
`"October",
`"November",
`"December",
`"Monday",
`"Tuesday",
`"Wednesday",
`"Thursday",
`"Friday",
`"Saturday",
`"Sunday",
`a,
`
`a),
`0,2,
`0,3,
`0,4,
`0,5,
`0,6,
`0,7,
`0,8,
`0,9,
`0,10,
`0,11,
`0,12,
`0,13,
`0,14,
`0,15,
`0,16,
`0,17,
`0,18,
`0,19,
`0,0
`
`- 4 -
`
`};
`
`Teradata, Exh. 1028, p. 621 of 798
`
`

`

`MENU(3T)
`
`(AT&T UNIX PC only)
`
`MENU (3T)
`
`menu_t multmenu =
`{
`
`"Multiple" ,
`"Many Choices!",
`"Pick multiple commands from the list",
`0,0,0,0,
`M_WINSON,
`{O},
`0,0,0,0,0,
`multitems,
`multitems,
`o
`
`};
`
`mainO
`{
`
`int err;
`int cmdop,multop;
`char *which;
`
`winit();
`keypad( 0,1);
`
`cmdop = M~EGIN 1M_INPUT;
`multop = M_BEGIN 1M_INPUT;
`
`while(l)
`{
`
`which = "cmdmenu";
`err = menu( &cmdmenu, cmdop );
`cmdop &= "'M:_BEGIN;
`if ( err < 0 II err == Close)
`break;
`
`which = "multmenu"·
`err = menu( &multm~nu, multop );
`rilUltop &= -M~EGIN;
`if ( err < 0 II err == Close)
`break;
`
`}
`if ( err < 0 )
`{
`
`fprintf(stderr,"err %d in %s",err,which);
`sleep(S);
`
`}
`wexit(O);
`
`}
`
`- 5 -
`
`Teradata, Exh. 1028, p. 622 of 798
`
`

`

`MENU (3T)
`
`(AT&T UNIX PC only)
`
`MENU (3T)
`
`FILES
`
`/usr /include/menu.h
`/usr /include/kcodes.h
`SEE ALSO
`form(3T), tam(3T).
`DIAGNOSTICS
`Menu returns non-negative keyboard codes (see kcodes.h) when
`keyboard input termina.t.ed t.he menu interaction. Other return
`values signal more serious errors and are defined in menu.h.
`
`- 6 -
`
`Teradata, Exh. 1028, p. 623 of 798
`
`

`

`MESSAGE(3T)
`
`(AT&T UNIX PC only)
`
`MESSAGE ( 3T )
`
`NAME
`
`message - display error and help messages
`SYNOPSIS
`#include <message.h>
`
`int message{mtype, hfile, htitle, format [, arg ] ...
`int mtype;
`char *hfile, *htitle, *format;
`
`)
`
`int exhelp{hfile, htitle)
`char *hfile, *htitle;
`DESCRIPTION
`Message formats the passed message a la prt"ntf and displays the
`message in a window that message creates. The message is
`automatically wrapped to fit within the dimensions of the window,
`and may contain embedded new lines. Message then waits for user
`input and returns the character read to the caller.
`Mtype can have one of the following values:
`MT_HELP
`Displays help message
`MT _ERROR
`Displays error message
`MT_POPUP
`Displays a popup window
`MT_QUIT
`Displays error message with cancel
`option
`MT_CONFIRM Displays confirmation message
`MT_INFO
`Displays informational message
`All message types except MT_POPUP display
`the available
`choices (ENTER, CANCL, or HELP) and beep any other keys.
`The MT_INFO message type takes the first line of the message
`and uses it as the window label.
`When HELP is selected, message executes uahelp, passing it hfile
`and htitle as the help file name and initial help display title. Mes(cid:173)
`sage then waits for uahelp to return. If hfile is NULL, then the
`HELP choice is not offered or accepted.
`Exhelp executes uahelp directly, without going through an inter(cid:173)
`mediate help display. In both cases, if hfile is a full path name
`then it is passed to uahelp as
`is, otherwise the pathname
`jusrjlibjua is assumed.
`EXAMPLES
`To print an error message when a file isn't found:
`
`message(MT_ERROR, "ua.hlp", "System errors",
`"%s not found", name);
`If the user presses the Help key in response to this message, then
`uahelp will display the page on system errors in the user agent
`help file.
`
`- 1 -
`
`Teradata, Exh. 1028, p. 624 of 798
`
`

`

`MESSAGE ( aT )
`
`(AT&T UNIX PC only)
`
`MESSAGE ( aT )
`
`To get confirmation:
`
`message(MT_CONFIRM, NULL, NULL,
`"%s will be overwritten",
`name);
`In this case, if the user presses Help, the key will be declared
`invalid.
`DIAGNOSTICS
`Message returns the character typed by the user, or -1 if error.
`Currently, the only error is Can't create w£ndow, and in this case,
`message will display this error message on the prompt line of the
`current window.
`Exhelp returns -Ion error (argument error, fork failure, or exec
`failure).
`SEE ALSO
`uahelp(l), tam(3T).
`
`- 2 -
`
`Teradata, Exh. 1028, p. 625 of 798
`
`

`

`MKTEMP(3C)
`
`MKTEMP(3C)
`
`NAME
`
`mktemp - make a unique file name
`SYNOPSIS
`char *mktemp (template)
`char *template;
`DESCRIPTION
`Mktemp replaces the contents of the string pointed to by template
`by a unique file name, and returns the address of template. The
`string in template should look like a file name with six trailing Xs;
`mktemp will replace the Xs with a letter and the current process
`ID. The letter will be chosen so that the resulting name does not
`duplicate an existing file.
`SEE ALSO
`getpid(2), tmpfile(3S), tmpnam(3S).
`
`BUGS
`
`It is possible to run out of letters.
`
`- 1 -
`
`Teradata, Exh. 1028, p. 626 of 798
`
`

`

`MONITOR(3C)
`
`MONITOR ( 3C )
`
`NAME
`
`monitor - prepare execution profile
`SYNOPSIS
`void monitor (lowpc, highpc, buffer, bufsize, nfunc)
`int (*lowpc)( ), (*highpc)( );
`short *buffer;
`int bufsize, nfunc;
`DESCRIPTION
`An executable program created by cc -p automatically includes
`calls for monitor with default parameters; monitor needn)t be
`called explicitly except to gain fine control over profiling.
`Monitor is an interface to projil(2). Lowpc and highpc are the
`addresses of two functions; buffer is the address of a (user sup(cid:173)
`plied) array of bUfsize short integers. Monaor arranges to record
`a histogram of periodically sampled values of the program counter,
`and of counts of calls of certain functions, in the buffer. The
`lowest address sampled is that of lowpc and the highest is just
`
`below highpc. Lowpc may not equal ° for this use of monitor. At
`
`most nfunc call counts can be kept; only calls of functions com(cid:173)
`piled with the profiling option -p of cC(l) are recorded. (The C
`Library and Math Library supplied when cc -p is used also have
`call counts recorded.) For the results to be significant, especially
`where there are small, heavily used routines, it is suggested that
`the buffer be no more than a few times smaller than the range of
`locations sampled.
`To profile the entire program, it is sufficient to use
`extern etext;
`
`monitor (( int (* )())2, etext, buf, bufsize, nfunc);
`Etext lies just above all the program text; see end(3C).
`To stop execution monitoring and write the results on the file
`mon.out, use
`monitor ((int (*)O)NULL, 0, 0, 0, 0);
`Prof(l) can then be used to examine the results.
`
`FILES
`
`mon.out
`SEE ALSO
`cC(l), prof(1), profil(2), end(3C).
`
`- 1 -
`
`Teradata, Exh. 1028, p. 627 of 798
`
`

`

`NLIST(3C)
`
`NLIST( 3C)
`
`NAME
`
`nlist - get entries from name list
`SYNOPSIS
`#include < a.out.h >
`int nlist (file-name, nl)
`char *file-name;
`struct nlist *nl[ ];
`DESCRIPTION
`Nlist examines the name list in the executable file whose name is
`pointed to by file-name, and selectively extracts a list of values
`and puts them in the array of nlist structures pointed to by nl.
`The name list nl consists of an array of structures containing
`names of variables, types and values. The list is terminated with
`a null name; that is, a null string is in the name position of the
`structure. Each variable name is looked up in the name list of the
`If the name is found, the type and value of the name are
`file.
`If the name is not found, both
`inserted in the next two fields.
`entries are set to O. See a.out(4) for a discussion of the symbol
`table structure.
`This subroutine is useful for examining the system name list kept
`in the file /unix.
`In this way programs can obtain system
`addresses that are up to date.
`SEE ALSO
`a.out(4).
`DIAGNOSTICS
`All type entries are set to 0 if the file cannot be read or if it
`doesn)t contain a valid name list.
`Ntist returns -1 upon error; otherwise it returns O.
`
`- 1 -
`
`Teradata, Exh. 1028, p. 628 of 798
`
`

`

`PASTE(3T)
`
`(AT&T UNIX PC only)
`
`PASTE(3T)
`
`NAME
`
`paste - paste buffer utilities
`SYNOPSIS
`#include <pbf.h>
`
`FILE *pb_openO
`
`int pb_check(stream)
`FILE *stream;
`int pb_seek(stream)
`FILE *stream;
`int pb_empty(stream)
`FILE * stream;
`char *pb_nameO
`int pb_puts(ptr,stream)
`char *ptr;
`FILE *stream;
`int pb_weof(stream)
`FILE * stream;
`char *pb~ets(ptr, n, stream)
`char *ptr;
`int n;
`FILE *stream;
`int pb~buf(ptr, n, fn, stream)
`char *ptr;
`int n;
`int (*fn) 0;
`FILE *stream;
`char *adf~twrd(sptr, dptr)
`char *sptr, *dptr;
`char *adf~txcd(sptr, dptr)
`char *sptr, *dptr;
`int adf~ttok(ptr, tbl)
`char *ptr;
`struct s_kwtbl *tbl;
`DESCRIPTION
`Pb_open opens the paste buffer file and associates a stream with
`it. Pb_open returns a pointer to the FILE structure associated
`with the stream.
`Pb_check determines if
`the paste buffer file associated with
`stream contains any data, and returns TRUE if the paste buffer
`is not empty, and FALSE otherwise.
`Pb_seek scans the paste buffer file from the beginning for the end
`of file, and then seeks to that displacement. It sets up the paste
`buffer for appending.
`
`- 1 -
`
`Teradata, Exh. 1028, p. 629 of 798
`
`

`

`PASTE(3T)
`
`(AT&T UNIX PC only)
`
`PASTE(3T)
`
`Pb_empty empties the paste buffer file and closes it. It is intended
`to be called atter the paste buffer file has been read.
`Pb_name returns a pointer to a static area containing the name of
`the paste buffer file.
`.
`Pb_puts appends a null terminated text string to the paste buffer
`file in ADF format. It has the same interface as jputs .
`Pb_weoj writes an end of file code to the paste buffer file, and
`closes the file. It is intended to be calied aiter the paste buffer file
`has been written.
`.
`Pb_gets reads the next string from the paste buffer file and con(cid:173)
`verts it to text. It has the same interface as jgets. Pb_gets
`always returns EOF after 511 bytes have been read. To read
`larger blocks of text, pb_gbuj must be used.
`Pb_gbuj reads a paste buffer file entry and converts it to text. It
`puts the results into the buffer passed to it. Pb_gbuj calls the
`passed function to store the buffer at the end of the paste entry,
`or when the buffer becomes full. When this function is called, it is
`passed the buffer address, and the number of bytes in the buffer.
`This function should return a negative value on error.
`If a NULL pointer is passed in place of the function, then
`pb __ gbuj returns a null-terminated string, stored in the passed
`buffer. Note that pb_gbuj can only be called once, and the paste
`buffer file should be marked empty after the call.
`The three functions a df_gtwrd , adf_gtxcd, and adf-gttok are utili(cid:173)
`ties used by pb_gbuj to interpret the ADF format. Applications
`that wish to access the ADF formatted files directly might use
`them.
`adf-gtwrd scans the input string pointed to by sptr and pulls o~t
`the next word. It stores this word (null-terminated) to the buffer
`pointed to by dptr, and returns an updated input pointer.
`Adf-gtxcd pulls out the embedded text code from the input string
`pointed to by sptr, and also returns an updated input pointer.
`This text code is stored null-terminated in the buffer pointed to by
`dptr. Adj_gtxcd should be called when a "\" is encountered in
`the input line in a text field, and sptr should be pointing to the
`character following the (( \."
`Adj_gttok converts a word (a null-terminated string) to a token
`(integer) and returns the token. The conversion is driven by the
`passed keyword table. The keyword table structure is defined in
`the include filephf.h.
`.
`EXAMPLE
`To implement the cut operation:
`paste_file = pb_open 0;
`if (paste_file == NULL)
`message (MT_ERROR, "wp.hlp", "Paste",
`"Unable to open or create paste buffer file");
`
`- 2 -
`
`Teradata, Exh. 1028, p. 630 of 798
`
`

`

`PASTE(3T)
`
`(AT&T UNIX PC only)
`
`PASTE (3T)
`
`else
`{
`chr = Enter;
`if (pb_check (paste_file))
`{
`chr = message (MT_QUIT, "wp.hlp", "Paste",
`"Paste buffer contains an entry - \ do you
`wish to overwrite?");
`}
`if (chr == Enter)
`{
`... 1* Paste file is empty, or is OK to * /
`... /* overwrite, write the paste file using * /
`... 1* fwrite, fprintf, etc.
`}
`fclose (paste_file);
`}
`
`To implement the paste operation:
`paste_file = pb_open 0;
`if (paste_file == NULL)
`message (MT_ERROR, "wp.hlp", "Paste",
`"Unable to open or create paste buffer file");
`
`else
`{
`if (p b_check (paste_file))
`{
`/* Paste file exists and is non empty, * /
`* /
`/* Read the paste file using fread,
`/* fscanf, etc.
`
`}
`else
`message (MT_ERROR, "wp.hlp", "Paste",
`"Paste buffer is empty");
`p b_em pty (paste_file);
`}
`
`SEE ALSO
`adf( 4), message(3T), tam(3T).
`DIAGNOSTICS
`Pb_open returns a NULL pointer on failure. Pb_gets returns a
`NULL pointer at end of file. Pb_puts returns EOF on failure.
`
`- 3 -
`
`Teradata, Exh. 1028, p. 631 of 798
`
`

`

`PERROR(3C)
`
`PERROR(3C)
`
`NAME
`
`perror, errno, sys_errlist, sys_nerr - system error messages
`SYNOPSIS
`void perror (s)
`char *s;
`extern int errno;
`extern char *sys_errlist[ ];
`extern in t sys_nerr;
`DESCRIPTION
`Perror produces a message on the standard error output, describ(cid:173)
`ing the last error encountered during a call to a system or library
`function. The argument string s is printed first, then a colon and
`a blank, then the message and a new-line. To be of most use, the

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket