Thank you very much. I got it, I got it. It works and I wanted to implement it exactly in this way.
I strongly believe I will be able to use other components in place of the alert control you used. Thank you. It's a great help. It's an ideal code as it's a mix of c and c++ with fltk. It should be my baseline :)) You must be the Eric of http://seriss.com/people/erco/fltk/ My goodness, how effortlessly you people develop code! > ..and an example without using popen() that uses > raw fork(): > http://seriss.com/people/erco/fltk/#Fltk-tty Yes, thank you. I have already got the links and, also the unix only; http://seriss.com/people/erco/fltk/unix-bidir-dumb-terminal.cxx This will explain a lot and I have to understand the every bit of it. :)) > On 03/17/12 11:55, vectrum wrote: > > Hello, > > > > I am learning c++ and planning to learn fltk programming as it has been > > hailed as one of the fine libs to program with but as my goal is to > > learn unix programming so I'm not sure how fltk manages system call. > > I want to display output of a simple fork call, how fltk manages it? > > > > #include <unistd.h> > > int main() > > { > > pid_t pid; > > const char *name; > > pid = fork(); > > if (pid == 0) > > { > > name = "I am the child"; > > write(1, name, 15); > > write(1, "\n", 2); > > } > > else > > { > > name = "I am the parent"; > > write(1, name, 16); > > write(1, "\n", 2); > > } > > return 0; > > } > > > > I want to display the output of this code on a fltk based label or > > text box. Is it possible? > > Thank you. > > Sounds like you want to redirect stdin/out of your app > to a pipe that you can then read, and stick it into > an FLTK window. > > It's harder to handle the parent's output, since > this would imply threads. > > But it's easy to get the child's output. > > An easy example is to rewrite the program using popen(), > which does the fork() and redirection to a pipe() for you, > and show the child's output in a dialog window: > > #include <stdio.h> > #include <string> > #include <FL/Fl.H> > #include <FL/fl_ask.H> > #ifdef _WIN32 > #define popen _popen > #define pclose _pclose > #endif > int main(int argc, const char *argv[]) { > if ( argc >= 2 ) { > // CHILD > const char *name = "I am the child\n"; > write(1, name, strlen(name)); > return(0); > } > std::string command; > command = argv[0]; > command += " -child"; > std::string msg; > FILE *fp = popen(command.c_str(), "r"); > if ( fp == 0 ) { > msg += "Failed to execute: '"; > msg += command; > msg += "'\n"; > } else { > char s[1024]; > while ( fgets(s, sizeof(s)-1, fp) ) { > msg += s; > } > pclose(fp); > } > fl_alert(msg.c_str()); > return(0); > } > > Note that only 3 lines of that code involve FLTK. > > Here's a more complex example showing how to use > fltk with popen() handling both stdin and stdout. > http://seriss.com/people/erco/fltk/#SimpleTerminal > > ..and an example without using popen() that uses > raw fork(): > http://seriss.com/people/erco/fltk/#Fltk-tty _______________________________________________ fltk mailing list [email protected] http://lists.easysw.com/mailman/listinfo/fltk

