Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <assert.h>
- struct Node
- {
- char *key;
- char *value;
- struct Node *next;
- };
- struct Node *load(FILE *file)
- {
- struct Node *list = NULL, **nextp = &list;
- char buffer[1024];
- while (fgets(buffer, sizeof buffer, file) != NULL) {
- struct Node *node;
- node = malloc(sizeof(struct Node) + strlen(buffer) + 1);
- node->key = strtok(strcpy((char*)(node+1), buffer), "/");
- node->value = strtok(NULL, "\n");
- node->next = NULL;
- *nextp = node;
- nextp = &node->next;
- }
- return list;
- }
- int main(int argc, char **argv)
- {
- FILE *file;
- struct Node *head, *node;
- if (argc != 2) {
- fprintf(stderr, "Usage: %s <file>\n", argv[0]);
- exit(EXIT_FAILURE);
- }
- file = fopen(argv[1], "r");
- assert(file != NULL);
- head = load(file);
- fclose(file);
- for (node = head; node != NULL; node = node ->next)
- printf("key=\"%s\" value=\"%s\"\n", node->key, node->value);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement