Content-type: text/html Man page of SCF_Session_freeInfo

SCF_Session_freeInfo

Section: Smartcard Library Functions (3SMARTCARD)
Updated: 28 Feb 2001
Index Return to Main Contents
 

NAME

SCF_Session_freeInfo, SCF_Terminal_freeInfo, SCF_Card_freeInfo - deallocate information storage  

SYNOPSIS

cc [ flag... ] file... -lsmartcard [ library...] 
#include <smartcard/scf.h>

SCF_Status_t SCF_Session_freeInfo(SCF_Session_t session, void *value);

SCF_Status_t SCF_Terminal_freeInfo(SCF_Terminal_t terminal, void *value);

SCF_Status_t SCF_Card_freeInfo(SCF_Card_t card, void *value);  

PARAMETERS

card An object that was returned from SCF_Terminal_getCard(3SMARTCARD). This object must be associated with the information value being freed.

session An object that was returned from SCF_Session_getSession(3SMARTCARD). This object must be associated with the information value being freed.

terminal An object that was returned from SCF_Session_getTerminal(3SMARTCARD). This object must be associated with the information value being freed.

value A pointer that was returned from a call to SCF_Session_getInfo(3SMARTCARD), SCF_Terminal_getInfo(3SMARTCARD), or SCF_Card_getInfo(3SMARTCARD).

 

DESCRIPTION

When information is requested for an object (for example, by using SCF_Session_getInfo()), the result is placed in memory allocated for that request. This memory must eventually be deallocated, or a memory leak will result. The deallocation of memory can occur in one of two ways.

• The simplest method is to allow the smartcard library to automatically deallocate memory when the object associated with the information is closed. For example, when SCF_Card_close(3SMARTCARD) is called, any information obtained from SCF_Card_getInfo() for that card object is deallocated. The application is not required to call SCF_Card_freeInfo() at all.

• If the object persists for a long period of time, the application can explicitly request the information to be deallocated without closing the object, so that memory is not wasted on unneeded storage. Similarly, if an application repeatedly requests information about an object (even the same information), the application can explicitly request deallocation as needed, so that memory usage does not continue to increase until the object is closed. In general, requesting information to be deallocated can be used to reduce runtime memory bloat.

Attempts to access deallocated memory result in undefined behavior.  

RETURN VALUES

If the information is successfully deallocated, SCF_STATUS_SUCCESS is returned. Otherwise, an error value is returned.  

ERRORS

These functions will fail if:

SCF_STATUS_BADARGS The specified value cannot be deallocated, possibly because of an invalid pointer, a value already deallocated, or because the value is not associated with the specified session, terminal, or card.

SCF_STATUS_BADHANDLE The specified session, terminal, or card has been closed or is invalid.

SCF_STATUS_FAILED An internal error occured.

 

EXAMPLES

Example 1: Free information.

char *terminalName;
SCF_Status_t status;
SCF_Terminal_t myTerminal;

/* (...call SCF_Session_getTerminal to open myTerminal...) */

status = SCF_Terminal_getInfo(myTerminal, "name", &terminalName);
if (status != SCF_STATUS_SUCCESS) exit(1);

printf("The terminal name is %s\n", terminalName);

status = SCF_Terminal_freeInfo(myTerminal, terminalName);   
if (status != SCF_STATUS_SUCCESS) exit(1);

 

ATTRIBUTES

See attributes(5) for descriptions of the following attributes:

ATTRIBUTE TYPEATTRIBUTE VALUE
Interface StabilityEvolving
MT-LevelMT-Safe

 

SEE ALSO

libsmartcard(3LIB), SCF_Session_getInfo(3SMARTCARD), SCF_Session_getSession(3SMARTCARD), SCF_Session_getTerminal(3SMARTCARD), SCF_Terminal_getCard(3SMARTCARD), attributes(5)


 

Index

NAME
SYNOPSIS
PARAMETERS
DESCRIPTION
RETURN VALUES
ERRORS
EXAMPLES
ATTRIBUTES
SEE ALSO

This document was created by man2html, using the manual pages.
Time: 02:38:33 GMT, October 02, 2010