File: test124.c

package info (click to toggle)
libtpl 1.5-2
  • links: PTS
  • area: main
  • in suites: squeeze, wheezy
  • size: 4,284 kB
  • ctags: 748
  • sloc: sh: 10,059; ansic: 5,644; perl: 1,062; makefile: 119; cpp: 32
file content (38 lines) | stat: -rwxr-xr-x 664 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <stdio.h>
#include <string.h>
#include "tpl.h"
#define LEN 10

const char *filename = "/tmp/test124.tpl";

typedef struct {
  char name[LEN];
} test_t;
int main() {
  test_t t;
  char *s;
  tpl_node *tn;

  tn = tpl_map("A(S(c#)s)", &t, LEN, &s);
  printf("mapped\n");

  memcpy(t.name,"abcdefghi\0",10);
  s="first";
  tpl_pack(tn,1);

  memcpy(t.name,"jklmnopqr\0",10);
  s="second";
  tpl_pack(tn,1);

  tpl_dump(tn,TPL_FILE,filename);
  tpl_free(tn);
  printf("freed\n");

  tn = tpl_map("A(S(c#)s)", &t, LEN, &s);
  tpl_load(tn,TPL_FILE,filename);
  while(tpl_unpack(tn,1) > 0) {
      printf("%s %s\n", t.name, s);
  }
  tpl_free(tn);
  return 0;
}