SCF_Session_freeInfo(3SMARSmartcard Library FuSCF_Session_freeInfo(3SMARTCARD)NAME
SCF_Session_freeInfo, SCF_Terminal_freeInfo, SCF_Card_freeInfo - deal‐
locate 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_get‐
Card(3SMARTCARD). This object must be associated with
the information value being freed.
session An object that was returned from SCF_Session_getSes‐
sion(3SMARTCARD). This object must be associated with
the information value being freed.
terminal An object that was returned from SCF_Session_getTermi‐
nal(3SMARTCARD). This object must be associated with
the information value being freed.
value A pointer that was returned from a call to SCF_Ses‐
sion_getInfo(3SMARTCARD), SCF_Terminal_getInfo(3SMART‐
CARD), 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 automati‐
cally deallocate memory when the object associated with the infor‐
mation 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 stor‐
age. 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 gen‐
eral, 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, pos‐
sibly because of an invalid pointer, a value
already deallocated, or because the value is
not associated with the specified session, ter‐
minal, 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 TYPE │ ATTRIBUTE VALUE │
├─────────────────────────────┼─────────────────────────────┤
│Interface Stability │Evolving │
├─────────────────────────────┼─────────────────────────────┤
│MT-Level │MT-Safe │
└─────────────────────────────┴─────────────────────────────┘
SEE ALSOlibsmartcard(3LIB), SCF_Session_getInfo(3SMARTCARD), SCF_Session_get‐
Session(3SMARTCARD), SCF_Session_getTerminal(3SMARTCARD), SCF_Termi‐
nal_getCard(3SMARTCARD), attributes(5)SunOS 5.10 28 Feb 2001 SCF_Session_freeInfo(3SMARTCARD)