Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 13 Oct 2000 13:55:10 -0700
From:      Sriranga Veeraraghavan <ranga@CSUA.Berkeley.EDU>
To:        Johan Pettersson <pettersson.johan@spray.se>
Cc:        freebsd-questions@FreeBSD.ORG
Subject:   Re: execv 
Message-ID:  <200010132055.NAA17861@soda.csua.Berkeley.edu>
In-Reply-To: Your message of "Fri, 13 Oct 2000 11:01:46 %2B0200." <Pine.BSF.4.21.0010131054320.84056-100000@ng4L117.i.spray.se\000> 

next in thread | previous in thread | raw e-mail | index | archive | help

> I have problem with a C-program.
> 
> -----8<------------------------
> char *arglist[] = { "-e pine" };
> .
> .
> execv("/usr/X11R6/bin/xterm", arglist);
> -----8<------------------------
> 
> The function replaces the process image
> with xterm. But how do I pass arguments
> to xterm. (above doesn't work =(

Hi,

The man page sums it up pretty clearly. Here are the relavent parts:

  int execv(const char *path, char *const argv[])

  The initial argument for this functions is the pathname of a file
  which is to be executed.

  The second argument provides an array of pointers to null-terminated
  strings that represent the argument list available to the new program.

  The first element of the array of pointers, by convention, should
  point to the file name associated with the file begin executed.  The
  array of pointers must be terminated by a NULL pointer.

You probably want to do something like:

char *arglist[] = { "/usr/X11R6/bin/xterm",
                    "-e",
                    "pine",
                    NULL };
...

execv (arglist[0],arglist);

HTH,

----ranga


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200010132055.NAA17861>