=================================================================== RCS file: /home/cvs/OpenXM/doc/oxlib/test1-tcp.c,v retrieving revision 1.1 retrieving revision 1.3 diff -u -p -r1.1 -r1.3 --- OpenXM/doc/oxlib/test1-tcp.c 2000/09/07 21:34:06 1.1 +++ OpenXM/doc/oxlib/test1-tcp.c 2000/09/07 22:21:11 1.3 @@ -1,8 +1,26 @@ -/* $OpenXM$ */ +/* $OpenXM: OpenXM/doc/oxlib/test1-tcp.c,v 1.2 2000/09/07 21:55:48 takayama Exp $ */ /* A sample code to explain how to use ox_asir by TCP/IP and OpenXM control protocol. It computes the gcd of 12 and 8 by calling ox_asir server. */ + +/* + Asir code that does the same computation on ox_asir server. + Try the following lines on asir. + + P = ox_launch(); + ox_push_cmo(P,12); + ox_push_cmo(P,8); + ox_push_cmo(P,ntoint32(2)); + ox_push_cmo(P,"igcd"); + ox_push_cmd(P,269); + ox_pop_string(P); + + Then, you get + 4 + + */ + #include #include #include @@ -125,11 +143,12 @@ ox_pop_string(int dataPort,char *buf,int limit) { exit(1); } length = ox_pop_int32(dataPort); - if (length > limit) { + if (length > limit-1) { fprintf(stderr,"Too long string to read.\n"); exit(1); } - read(dataPort,buf,length); + read(dataPort,buf,length); + buf[length]=0; } #define SIZE 1024