File: test31.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 899 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 "tpl.h"
#include <stdlib.h>
#include <stdio.h>

int main(int argc, char*argv[]) {
    tpl_bin bin;
    tpl_node *tn;
    int i;
    char *file = "/tmp/test31.tpl";

    bin.addr = NULL;
    bin.sz = 0;  

    tn = tpl_map("B", &bin);
    tpl_pack(tn,0);
    tpl_dump(tn,TPL_FILE,file);
    tpl_free(tn);

    /* load these two fields with bogus values to test that tpl_unpack
     * sets them back to NULL, and 0 respectively.  */
    bin.addr = file;  
    bin.sz = 4;      

    tn = tpl_map("B", &bin);
    tpl_load(tn,TPL_FILE,file);
    tpl_unpack(tn,0);
    tpl_free(tn);

    /* print the buffer char-by-char ; its not a nul-termd string */
    printf("buffer length: %u\n", bin.sz);
    for(i=0; i < bin.sz; i++) printf("%c", ((char*)bin.addr)[i]);
    printf("\n");

    if (bin.sz > 0) 
        free(bin.addr);  /* malloc'd for us by tpl_unpack, we must free */
    return(0);
}