How to provide Shell Escape from a C program?

Gary Weimer weimer at ssd.kodak.com
Wed Nov 21 02:06:35 AEST 1990


In article <349 at clbull.cl.bull.fr> rudrak at saphir.cl.bull.fr (Rudrakshala Purushotham) writes:
>I want to provide shell escape feature from a C program. But I am having 
>some problems with the following code:
>
>		for (i = 2; i < MAX_ARGS && (s = strtok (command, " \t")); i++)
>			args [i] = strsave (s);
>
>I am using C shell and System V. I tried `/bin/ls -l -R' as input to
>shell_escape (), my .login file gets executed here and /bin/ls is executed
>(without -l -R) options. 
>
>Can some body help me with this problem? 

>From the man page for strtok:

     strtok() considers the string s1 to consist of a sequence of
     zero  or  more text tokens separated by spans of one or more
     characters from the separator string  s2.   The  first  call
     (with  pointer  s1 specified) returns a pointer to the first
     character of the first token, and will have written  a  null
     character  into s1 immediately following the returned token.
     The function keeps track  of  its  position  in  the  string
     between separate calls, so that subsequent calls (which must
                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     be made with the first argument a NULL  pointer)  will  work
     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     through  the string s1 immediately following that token.  In
     this way subsequent calls will work through  the  string  s1
     until no tokens remain.  The separator string s2 may be dif-
     ferent from call to call.  When no token remains  in  s1,  a
     NULL pointer is returned.



More information about the Comp.unix.programmer mailing list