> < ^ Date: Thu, 15 Feb 2001 14:26:03 +0100 (CET)
> < ^ From: Jan De Beule <jdebeule@cage.rug.ac.be >
> ^ Subject: New features concernig Input-Ouput Streams

Dear GAP-Forum,

At first glance, the new features concernig Input-Output Streams seems
very interesting. Although trying the examples in the documentation I
encounter some problems. I wrote a very simple and small C-program that
reverses strings as in the example:
#include <stdio.h>
#include <stddef.h>
#include <stdlib.h>

int main(void) {
  int size = 0;
  char* s = (char*) malloc(sizeof(char));
  char c;
  while((c=getchar()) != '\n') {
    s = (char*) realloc(s,(++size)*sizeof(char));
    s[size-1] = c;
  }
  s[size] = '\0';
  while(size--)
    printf("%c",s[size]);
  printf("%c",'\n');
  return 0;
}
The binary is in the directory ~/prog/ en works fine. It uses of course
stdin and stdout. So I execute the following commands in GAP, with the
following output:

GAP4, Version: 4r2 fix6 of 26-January-2001, i686-pc-linux-gnu-gcc
Components:  small, small2, small3, small4, small5, small6, small7, 
             small8, id2, id3, id4, id5, id6, trans, prim, tbl, 
             tom  installed.
gap> d := Directory("./prog/");
dir("./prog/")
gap> f := Filename(d,"rev");
"./prog/rev"
gap> s := InputOutputLocalProcess(d,f,[]);
< input/output stream to rev >
gap> WriteLine(s,"The cat sat on the mat\n");
Child Process 2388 has stopped or died, status 256 at
ret := WRITE_IOSTREAM( stream![1], text, - Length( text ) );

This is the output. What can be the problem? Are there specific conditions
for the external binaries to work with the mechanisms in GAP?

Jan De Beule

----------------------------------------------------------------------------
Jan De Beule                                         jdebeule@cage.rug.ac.be
Vakgroep Zuivere Wiskunde                              Jan.DeBeule@rug.ac.be
Galglaan 2, 
B 9000 Gent (Belgium)                        http://cage.rug.ac.be/~jdebeule
----------------------------------------------------------------------------

> < [top]