[Go to CFHT Home Page] Man Pages
Back to Software Index  BORDER=0Manpage Top Level
    t_free(3N) manual page Table of Contents

Name

t_free - free a library structure

Synopsis

cc [ flag ... ] file ... -lnsl [ library ... ]

#include <tiuser.h>

int t_free(char *ptr, int struct_type);

MT-Level

MT-Safe

Description

The t_free() function frees memory previously allocated by t_alloc(3N) . This function will free memory for the specified structure, and will also free memory for buffers referenced by the structure.

ptr points to one of the six structure types described for t_alloc(3N) , and struct_type identifies the type of that structure, which can be one of the following:

T_BIND
struct t_bind
T_CALL
struct t_call
T_OPTMGMT
struct t_optmgmt
T_DIS
struct t_discon
T_UNITDATA
struct t_unitdata
T_UDERROR
struct t_uderr
T_INFO
struct t_info

where each of these structures is used as an argument to one or more transport functions.

t_free() will check the addr, opt, and udata fields of the given structure (as appropriate), and free the buffers pointed to by the buf field of the netbuf (see t_connect(3N) ) structure. If buf is NULL , t_free() will not attempt to free memory. After all buffers are freed, t_free() will free the memory associated with the structure pointed to by ptr.

Undefined results will occur if ptr or any of the buf pointers points to a block of memory that was not previously allocated by t_alloc(3N) .

Return Values

t_free returns 0 on success. On failure t_free returns -1, t_errno is set to indicate the error, and possibly errno is set.

Errors

On failure, t_errno will be set to the following:

TSYSERR
A system error has occurred during execution of this function, errno will be set to the specific error.

See Also

t_connect(3N) , t_alloc(3N)

Notes

This interface is safe in multithreaded applications.


Table of Contents