usleep, What I am trying to do is execute the command in the calling shell. So, if I were to execute my program, which changes the directory, it would do the following:
> pwd /usr/home/username/ > ./myprog .. > pwd /usr/home/ That's basically what I'm looking for. Being able to modify the calling shell with a program. Thanks, Jon On 4/4/06, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote: > Jon, > > i believe you are mixing up some concepts. > > 1. if i read your title "C Program to execute programs in same > console". i think this is easy, just use system("ls *.txt") and you > are done. i believe you can choose wat to do with the output, i am not > sure. > > 2. but you come up with the cd-command, which you want to change the > context of your parent shell. changing the home-dir of the current > process ( your program ) can be done with chdir. altering the context > of your parent-shell-process can not be done, except for setting > environment variables ( through the proper C calls ) > > but if you are running your program, your "shell" (interpreter) is > temporarily not there: your program is running the show. every > system,execvp or whatever call will give you a child-process with a > new shell, not the parent-shell-process. i believe you may set > environment variables in your parent shell with the appropiate library > calls, but not through a system/execvp call. > > so, maybe you should define what you really want to achieve. for > example, qdvd-author runs alls kinds of external programs to generate > thumbnails and slideshows for example. > > anybody please correct me if i am wrong. > > regards, > > usleep > > > On 4/4/06, Jonathan Herriott <[EMAIL PROTECTED]> wrote: > > Thanks for the suggestion. I haven't tried it yet, but I'll post if I > > get it working. > > > > Thanks, > > Jon > > > > On 4/3/06, cpghost <[EMAIL PROTECTED]> wrote: > > > On Mon, Apr 03, 2006 at 05:45:19PM -0400, Bill Moran wrote: > > > > On Mon, 3 Apr 2006 21:39:11 +0000 > > > > "Jonathan Herriott" <[EMAIL PROTECTED]> wrote: > > > > > So, my question is how can I get it to execute a cd in the current > > > > > shell using c code. You don't have to give me the code, just give me > > > > > a term to search for or a function to look up. I'm sure someone knows > > > > > how to do it here! > > > > > > > > Unless I'm misunderstanding your question, "man 2 chdir" should help > > out. > > > > > > Hmmm... chdir(2) would not change the parent process' (the shell's > > > process) current working directory, only the current working directory > > > of the process running the C program. > > > > > > Perhaps connecting to the shell via a pty, and then sending it a 'cd' > > > command could work? Of look at how expect(1) (/usr/ports/lang/expect) > > > implements this kind of stuff... > > > > > > Regards, > > > -cpghost. > > > > > > -- > > > Cordula's Web. http://www.cordula.ws/ > > > > > _______________________________________________ > > freebsd-questions@freebsd.org mailing list > > http://lists.freebsd.org/mailman/listinfo/freebsd-questions > > To unsubscribe, send any mail to "[EMAIL PROTECTED]" > > > _______________________________________________ freebsd-questions@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to "[EMAIL PROTECTED]"