Hey this sounds great. I was wondering if this will work on Windows machines also. I'm developing everything on *nix, but later on I'll probably have to port it to Win at one point or another, so I'd like to know if there is a good way of implementing this too. thnx for the supports so far. On Tue, 24 Feb 2004, Brett Viren wrote: > Hi Dejan, > > Dejan Nikic writes: > > SITUATION: I have a GTK+ gui application that I wrote, and what it does > > is gets some user input and creates a root macro file out of it and it > > starts root and runs that macro using execlp() function. > > > > PROBLEM: Every time I start root it closes my application and root runs > > by itself just fine. What I want to do is have root run and then I pass > > it the user input from GTK, without having to start root every time and > > have root close my application. > > > > I think what you are missing is a "fork". The exec family of > functions replaces the current executable with the new one. > > Assuming you need to do any on going communication with root you can > set up a pair of pipes connected to root's stdin/stdout. Keep reading > root's stdout file descriptor until you see the "root [xx]" prompt, > then print a new command to its stdin. > > If you don't care about talking with the root subprocess at all, then > it is even easier to use the system() function to just spawn it off in > the background and forget about it. > > Also, you might want to exec "root.exe" instead of "root". The root > program proper just does some small things that doesn't need the full > set of libs. For example, it handles any command line options asking > for help and throws up the splash screen. It then turns around and > then exec's "root.exe" for all the real work. > > -Brett. >
This archive was generated by hypermail 2b29 : Sun Jan 02 2005 - 05:50:06 MET