[FLUG] boh.. così
- From: "Simon" <seddie@xxxxxxxxx>
- To: <fanolug@xxxxxxxxxxxxx>
- Date: Tue, 30 Jul 2002 23:19:54 +0200
Mailing List del Fortunae LUG
=============================
Non trovando nulla di meglio da fare sta sera
vi pasto un pò di codice (non esente da possibili
bugs)...
int exec_cmnd(char *cmd, int argc, ...)
{
va_list ap;
char **args;
int c, ret, status;
pid_t chld;
/* da fare meglio con una calloc... me ne sbatto */
args = malloc((argc + 2) * sizeof(char *));
memset(args, 0x00, (argc + 2) * sizeof(char *));
args[0] = cmd;
va_start(ap, argc);
for(c = 1; c <= argc; ++c)
args[c] = va_arg(ap, char *);
va_end(ap);
if((chld = fork()) == 0) {
execv(cmd, args);
exit(-1);
}
if(chld > 0) {
while(wait(&status) != chld);
ret = WEXITSTATUS(status);
}
else ret = -1;
free(args);
return ret;
}
Serve per eseguire i binari in maniera semplice, il controllo
viene restituito al termine dell'esecuzine del binario chiamato.
Esempio pratico:
exec_cmnd("/bin/ls", 1, "-la")
Ci si può implementare sopra anche una system() così:
exec_cmnd("/bin/sh", 2, "-c", "ls -la");
Simon.
--
<simon> prima di fare ifconfig devi fare il setup della scheda sonora
Other related posts: