Ritzert@DMZRZU71.BITNET (02/22/90)
hi,
I don't understand why redirecting the input of Cconrs() doesn't work.
Here is a simple example of what I'm trying to do (compilers: Laser C
1.2, GCC 1.34):
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
/* redirect stdin and pexec the program that shall do the real work */
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
#include <osbind.h>
main() {
int fp;
if( (fp = Fopen("d:\\egs\\system\\base\\ll.g",0)) < 0 ) {
Cconws("Fopen\n");
Pterm(fp);
}
if( (fp = Fforce(0,fp)) < 0 ) {
Cconws("Fforce\n");
Pterm(fp);
}
if( (fp = (int)Pexec(0,"testt.prg","","")) < 0 ) {
Cconws("Pexec\n");
Pterm(fp);
}
}
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
/* testt --- silly demonstration program: */
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
#include <osbind.h>
main()
{
char buf[123];
buf[0] = 121;
for(;;) {
Cconws("? ");
Cconrs(&buf[0]);
Cconws("\r\n");Cconws(&buf[2]);Cconws(" !\r\n");
}
}
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
If I remember correctly from the previous discussions of io-redirection,
this code should work (it does work when I try to redirect stdout). But
it doesn't. Instead, the demo program still waits for input from the
keyboard. What am I doing wrong, what is the correct way to redirect the
input to Cconws() ?
BTW, the Absoft librarian also uses Cconrs() to read its commands...
Thanks for any comments
Michael Ritzert
mjr@dmzrzu71.bitnet