[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

Re: Shell commands in linux



Cheedu forced the electrons to say:
> 	Thanx for your reply for my earlier question. But the man pages
> didn't help. Can you tell me how to use the "system " and "execve" . An
> example would be nice.

Hmm... For system, something like:

char cmdbuf[100];
sprintf (cmdbuf, "ls -al");
system (cmdbuf);

is what you should do. Use that sprintf to your advantage.

You should be using one of the other exec* functions instead of execve. I
prefer execv, but you might like execl or one of the others better.
To execute a program, I do something like:

char *cmd[3];
/* malloc here for cmd[0-2] */
strcpy (cmd[0], "/bin/ls");
strcpy (cmd[1], "/bin/ls");
strcpy (cmd[2], "-al");
cmd[3] = NULL;
switch (pid = fork()) {
   case -1: exit (-1);
   case 0: execv (cmd[0], cmd);
	   exit (-1);
   default: waitpid (pid, &status, 0);
	    /* Process status here */
}

Binand

-- 
The prompt for all occasions:
export PS1="F:\$(pwd | tr '/[a-z]' '\134\134[A-Z]')> "
--------------- Binand Raj S. (binand@xxxxxxxxxxxxxxxxxxxxx)