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; }