int main(void)
{
    char        	line[80];
    int         	choice = ' ';
    char        	sem_name1[] = "e";
	char        	sem_name2[] = "s";
	char        	sem_name3[] = "n";
	char        	shm_name[] = "queue";
	unsigned long 	b[bufferSize];
	int 			i;
	for(i = 0; i < bufferSize; i++)
		b[i] = 0;

	//*shm_addr = 0;
	
	do
	{
		printf("Press i to initialize\n");
		choice = getchar();
	}
    while (choice != 'i');
    
    createNewSemaphore(sem_name1);
	createNewSemaphore(sem_name2);
	createNewSemaphore(sem_name3);
	
	shm_addr = createShm(shm_name, sizeof(b));
	shm_addr = openShm(shm_name);
	
	printf("*********************\n");
    printf("*****Initialized*****\n");
    printf("*********************\n");
    
	do
	{
		printf("Press q to close and unlink all\n");
		choice = getchar();
	}
    while (choice != 'q');
    
    closeSemaphore(sem_name1);
    closeSemaphore(sem_name2);
    closeSemaphore(sem_name3);
    
    CloseAndUnlink(shm_name);
    
    printf("*********************\n");
    printf("*******Unlinked******\n");
    printf("*********************\n");

	return (0);
}
//***************************************************************************
//*                                                                         *
//*  BOOL close()                                                           *
//*                                                                         *
//*  This closes the ASPI library and ASPI router driver and frees          *
//*  the memory allocated for the data buffer.
//*  Returns:                                                               *
//*    TRUE - Success                                                       *
//*    FALSE - Unsuccessful closing of library and driver                   *
//*                                                                         *
//*  Preconditions: init() should be called successfully before             *
//*                                                                         *
//***************************************************************************
BOOL scsiObj::close()
{
  BOOL success;
  ULONG rc;

  success=closeSemaphore();                     // call closeSemaphore member function
  if (!success)
  {
    printf("closeSemaphore() unsuccessful.\n");
    return FALSE;
  }
  success=closeDriver();                        // call closeDriver member function
  if (!success)
  {
    return FALSE;
    printf("closeDriver() unsucessful.\n");
  }
  rc = DosFreeMem(buffer);
  if (rc)
  {
    printf("DosFreeMem unsuccessful. return code: %ld\n", rc);
    return FALSE;
  }
  return TRUE;
}