Annotation of researchv10dc/630/man/src/p_man/man3/alloc.3r, revision 1.1.1.1

1.1       root        1: .ds ZZ DEVELOPMENT PACKAGE
                      2: .TH ALLOC 3R "630 MTG"
                      3: .XE "alloc()"
                      4: .XE "lalloc()"
                      5: .XE "allocown()"
                      6: .XE "free()"
                      7: .SH NAME
                      8: alloc, lalloc, free, allocown \- memory allocation
                      9: .SH SYNOPSIS
                     10: .B #include <dmd.h>
                     11: .br
                     12: .B char \(**alloc (nbytes)
                     13: .PP
                     14: .B char \(**lalloc (lnbytes)
                     15: .PP
                     16: .B void free (s)
                     17: .PP
                     18: .B void allocown (s, p)
                     19: .sp
                     20: .B unsigned nbytes;
                     21: .br
                     22: .B unsigned long lnbytes;
                     23: .br
                     24: .B Proc \(**p
                     25: .br
                     26: .B char \(**s;
                     27: .SH DESCRIPTION
                     28: The
                     29: .I alloc
                     30: function
                     31: is equivalent to the standard C function
                     32: .IR  malloc (3C).
                     33: It either returns a pointer to a block of
                     34: \f2nbytes\f1,
                     35: contiguous bytes of storage
                     36: or a 0 (\s-1NULL\s+1) if there is no available memory.
                     37: The storage is aligned on 4-byte boundaries.
                     38: Unlike
                     39: .IR malloc ,
                     40: \f2alloc\f1,
                     41: clears the storage to zeros.
                     42: .PP
                     43: The
                     44: .I lalloc
                     45: function is identical to
                     46: .I alloc
                     47: except it takes an unsigned long as an argument.
                     48: .PP
                     49: The
                     50: .I free
                     51: function
                     52: frees storage allocated by
                     53: .IR alloc .
                     54: The space is made available for further allocation.
                     55: .PP
                     56: The
                     57: .I allocown
                     58: function
                     59: changes the ownership of memory allocated by
                     60: .IR alloc.
                     61: The argument
                     62: .I s
                     63: is a value previously returned from
                     64: .IR alloc .
                     65: The argument
                     66: .I p
                     67: is the process taking over ownership of the memory.
                     68: If
                     69: .I p
                     70: is zero, the memory belongs to no one, and only an explicit call to
                     71: .I free
                     72: will free it.
                     73: .PP
                     74: The terminal
                     75: automatically frees all memory allocated by a process
                     76: when the process terminates or when
                     77: the window it is running in is deleted.
                     78: If the ownership of allocated memory is changed, it will
                     79: only be freed when the new owner is deleted or when
                     80: .I free
                     81: is called.
                     82: However, it is recommended that a process free its allocated
                     83: memory when the storage is no longer needed so that other
                     84: processes
                     85: will be able to use it.
                     86: .SH EXAMPLE
                     87: The following example shows the use of
                     88: .I alloc
                     89: and
                     90: .I free
                     91: in dynamically allocating memory for a \fIPoint\fR.
                     92: .PP
                     93: .RS 3
                     94: .ft CM
                     95: .nf
                     96: #include <dmd.h>
                     97: 
                     98: main()
                     99: {
                    100:     Point *p;
                    101:     char *alloc();
                    102:     void free();
                    103: 
                    104:     p = (Point *)alloc (sizeof(Point));
                    105: 
                    106:     .
                    107:     .
                    108:     .
                    109: 
                    110:     free (p);
                    111: }
                    112: .fi
                    113: .ft R
                    114: .RE
                    115: .SH SEE ALSO
                    116: balloc(3R), gcalloc(3R), structures(3R).
                    117: .br
                    118: malloc(3C) in the \f2UNIX System V Programmer's Reference Manual\f1.
                    119: 
                    120: 
                    121: .SH WARNINGS
                    122: The
                    123: .I alloc
                    124: function accepts an integer as argument; therefore, it can only allocate a
                    125: contiguous block of memory of 64K bytes or less.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.