This example shows how to allocate and free 3 DWORDs of local thread memory.

#define  INCL_DOSPROCESS
#define  INCL_DOSERRORS
#include <os2.h>
#include <stdio.h>          /* Needed for printf */

PULONG   pulThreadDWords = NULL;     /* Pointer to thread DWORDs returned */
APIRET   rc              = NO_ERROR; /* Return code */

int main(VOID) {

         /* Allocate 3 DWORDs of local thread memory */

  rc = DosAllocThreadLocalMemory(3,                   /* Number of DWORDs */
                                 &pulThreadDWords);   /* Address returned */

  if (rc != NO_ERROR) {
    printf("DosAllocThreadLocalMemory error: return code = %u\n", rc);
    return 1;
  }

          /* ... Use the thread-local memory ... */

  rc = DosFreeThreadLocalMemory(pulThreadDWords);     /* Free the DWORDs */

  if (rc != NO_ERROR) {
    printf("DosFreeThreadLocalMemory error: return code = %u\n", rc);
    return 1;
  }

  return NO_ERROR;
}


[Back] [Next]