-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathdict.c
56 lines (42 loc) · 1.3 KB
/
dict.c
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
/* File name: dict.c */
#include "common.h"
int main() {
J i;
I handle;
I portnumber= 12345;
S hostname= "localhost";
S usernamePassword= "kdb:pass";
K x, keys, values;
handle= khpu(hostname, portnumber, usernamePassword);
if(!handleOk(handle))
return EXIT_FAILURE;
x= k(handle, "`a`b`c!((1;2;3);(10.0;20.0);(`AB`CD`EF`GH))", (K) 0);
if(isRemoteErr(x)) {
kclose(handle);
return EXIT_FAILURE;
}
printf("Dict type = %d\n", x->t);
printf("Num elements = %lld (keys and values)\n", x->n);
keys= kK(x)[0];
values= kK(x)[1];
printf("Keys type = %d\n", keys->t);
printf("Num keys = %lld\n", keys->n);
printf("Values type = %d\n", values->t);
printf("Num values = %lld\n", values->n);
for(i= 0; i < keys->n; i++) {
printf("keys[%lld] = %s\n", i, kS(keys)[i]);
}
for(i= 0; i < values->n; i++) {
printf("values[%lld] has length %lld\n", i, kK(values)[i]->n);
}
J *values0= kJ(kK(values)[0]);
F *values1= kF(kK(values)[1]);
S *values2= kS(kK(values)[2]);
printf("values[0;] = %lld %lld %lld\n", values0[0], values0[1], values0[2]);
printf("values[1;] = %lf %lf \n", values1[0], values1[1]);
printf("values[2;] = %s %s %s %s \n", values2[0], values2[1], values2[2],
values2[3]);
r0(x);
kclose(handle);
return EXIT_SUCCESS;
}