void readFunction(char* toOpen){ FILE* toInsert = fopen(toOpen, "r"); char toPrint[100]; const char tabChar[2] = "\t"; head = NULL; while (fgets(toPrint, 100, toInsert) != NULL){ if (toPrint[strlen(toPrint) - 1] == '\n'){ toPrint[strlen(toPrint) - 1] = '\0'; } char* toInsertNode = strtok(toPrint, tabChar); int nodeInsertTracker = 1; struct Node* tempNode = malloc(sizeof(LN)); while (toInsertNode != NULL){ if (nodeInsertTracker == 1){ tempNode->name = malloc(strlen(toInsertNode + 1)); strcpy(tempNode->name, toInsertNode); nodeInsertTracker++; } else if (nodeInsertTracker == 2){ tempNode->address = malloc(strlen(toInsertNode + 1)); strcpy(tempNode->address, toInsertNode); nodeInsertTracker++; } else if (nodeInsertTracker == 3){ tempNode->phone = malloc(strlen(toInsertNode + 1)); strcpy(tempNode->phone, toInsertNode); nodeInsertTracker = 1; } toInsertNode = strtok(NULL, tabChar); } tempNode->next = NULL; addToLinkedList(tempNode); } fclose(toInsert); }
/** * Main function, * Allocates a LinkedList with 10 items, prints it to show the order, * calls reverseLinkedList to reverse it, and prints it again to see * if the order indeed was reversed. **/ void main (int argc, char *argv[]) { int i; int len = 10; if (argc > 1) { len = atoi(argv[1]); } Item *List = NULL; for (i=0; i<len; i++) { Item *item = malloc(sizeof(Item)); item->v = len - i; addToLinkedList(&List, item); } printLinkedList(List); Item *revList = reverseLinkedList(List); printLinkedList(revList); }
static const struct ProxySettings* processArgs( int argc, char** argv) { int retVal; bool foundLocalAddress = false; bool foundRemoteAddress = false; struct ProxySettings* proxySettings = checkedCalloc(1, sizeof(struct ProxySettings)); proxySettings->bufferSize = DEFAULT_BUFFER_SIZE; proxySettings->noDelay = DEFAULT_NO_DELAY_SETTING; proxySettings->numIOThreads = DEFAULT_NUM_IO_THREADS; initializeLinkedList(&(proxySettings->serverAddrInfoList)); do { retVal = getopt(argc, argv, "b:l:nr:t:"); switch (retVal) { case 'b': proxySettings->bufferSize = parseBufferSize(optarg); break; case 'l': addToLinkedList(&(proxySettings->serverAddrInfoList), parseAddrPort(optarg)); foundLocalAddress = true; break; case 'n': proxySettings->noDelay = true; break; case 'r': if (foundRemoteAddress) { printUsageAndExit(); } proxySettings->remoteAddrInfo = parseRemoteAddrPort( optarg, &(proxySettings->remoteAddrPortStrings)); foundRemoteAddress = true; break; case 't': proxySettings->numIOThreads = parseNumIOThreads(optarg); break; case '?': printUsageAndExit(); break; } } while (retVal != -1); if ((!foundLocalAddress) || (!foundRemoteAddress)) { printUsageAndExit(); } return proxySettings; }