Article View: comp.unix
Article #753Re: system command
From: Joe Yang
Date: Thu, 29 Jun 1995 00:00
Date: Thu, 29 Jun 1995 00:00
61 lines
2550 bytes
2550 bytes
In article <3sprhr$6g6@venera.isi.edu>, Gaurav Singh <gsingh@isi.edu> wrote:
>
>Hi,
>
> I am trying to execute the "system" command to execute an application
>(executable program).
>However the system command does not work if the name of the application has been
>aliased.
>
> e.g: $ alias test ps
> $ test
> (this works)
>
> however system("test"); in a c-program does not work.
>
> sh: test: not found
>
>
> I wonder if there is a way to force the system command to take into
>account the aliases, or is there a more efficient way to invoke an application
>from a c-program.
>
The reason this doesn't work is because the "system" library routine
spawns a Bourne shell process first, then execute the command in the
new shell. First of all, aliases are not part of the environment
inherited by a child process ("sh" in this case), secondly, alias is
a C shell command and Boune shell doesn't even understand it.
"system" is not a good way (although convinient) to apawn another
program in a C program anyway, one of the disadventage is the overhead
because another shell process is spawned unnecessarily. Try using
system call "fork" to create a new process directly and then using
exec (or one of its variations) to execute the new program. Now this
will not solve your alias program, because an alias is not a physical
program. Is there any particular reason you have to use an alias?
this will make your grogram very "unportable" even from shell to
shell.
Rose Sun
rose@ais.com
> pl reply to this news group or to gsingh@isi.edu
>
>
> thanks a ton
>
> Gaurav
>
>
>
>
>
>
>
>
>
Technical Details
Message-ID:
<3suhtc$bi4@news.duke.edu>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailReferences:
<3sprhr$6g6@venera.isi.edu>Show Full Headers
Complete Article Headers
X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: f8c9b,f653ab8f84d6a686 X-Google-Attributes: gidf8c9b,public X-Google-Thread: fc89c,f653ab8f84d6a686 X-Google-Attributes: gidfc89c,public X-Google-Thread: f72b0,f653ab8f84d6a686 X-Google-Attributes: gidf72b0,public X-Google-Thread: 1012a6,f653ab8f84d6a686 X-Google-Attributes: gid1012a6,public X-Google-Thread: 10183f,f653ab8f84d6a686 X-Google-Attributes: gid10183f,public X-Google-Thread: 10f717,f653ab8f84d6a686 X-Google-Attributes: gid10f717,public From: yang@math.duke.edu (Joe Yang) Subject: Re: system command Date: 1995/06/29 Message-ID: <3suhtc$bi4@news.duke.edu> X-Deja-AN: 105262651 references: <3sprhr$6g6@venera.isi.edu> organization: Dept of Math, Duke Univ, Durham, NC, USA keywords: system newsgroups: comp.unix,ca.unix,comp.unix.misc,comp.unix.programmer,comp.unix.questions,comp.unix.shell