pipes with gtk
- From: guigtk <guigtk ole com>
- To: gtk-app-devel-list gnome org
- Subject: pipes with gtk
- Date: Mon, 08 Oct 2001 15:00:40 +0200
Below there is a pice of code to work with a backgound binary process
(in this case a ftp).
I want to send commands from a Gtk text entry and receive a the
response into a text box. In this example I write with accion and I
want to read the the response with in a text box.
When I try read the data with while (fgets(str,BUFSIZE, fout) !=
NULL), I cant get out from the loop ???
What do i have to use to read str and continue???
Thanks a million
Guillermo
SOURCE CODE:
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <sys/types.h>
#define BUFSIZE 1024
pid_t childpid;
char str[BUFSIZE];
int pin[2],pout[2],len;
FILE *fout;
void accion(char *instruccion){
sprintf(str,"%s\n", instruccion);
printf("%s",str);
len=strlen(str);
write(pin[1],str,len);
fout=fdopen(pout[0],"r");
// to send to text box
while (fgets(str,BUFSIZE, fout) != NULL) printf("#%s",
str);// This is the problem
}
system("sleep 1"); // just to no get broken pipe ???
}
int main(){
pipe(pin);
pipe(pout);
childpid=fork();
if(childpid<0){
perror("fork");
return -2;
}
if(childpid==0){
close(pin[1]);
close(pout[0]);
dup2(pin[0],0);
dup2(pout[1],1);
execlp("ftp","ftp","-n","192.168.1.106",NULL);
}
else{
close(pin[0]);
close(pout[1]);
sprintf(str,"user anonymous \"pepe pepe es\"\n");
printf("%s",str);
len=strlen(str);
write(pin[1],str,len);
fout=fdopen(pout[0],"r");
}
//while (fgets(str,BUFSIZE, fout) != NULL) printf("%s",
str);
accion("ls"); // to send from a text entry
printf("ls\n"); // to send from a text entry
accion("cd pub"); // to send from a text entry
accion("get file.bmp"); // to send from a text entry
accion("quit"); // to send from a text entry
return 0;
}
___________________________________________________________________
Consigue tu e-mail gratuito TERRA.ES
Haz clic en http://www.terra.es/correo/
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]