Hi,
Ik ben echt een totale n00b mbt C programmeren. Ik gebruik voornamelijk shell scripts. Het volgende probleem. Ik moet een programma starten met een wrapper.
Het volgende voorbeeld wordt gegeven:
Maar dit vangt de parameters die meegegeven zijn aan de wrapper niet af. Wat ik wil is het volgende:
linuxbox # ./wrapper start
De wrapper moet dan de "start" optie meenemen en doorgeven aan het apachectl programma. In shell scripts doe je dat mooi met $1, maar met dit C programma wil het niet echt lukken. Ik lees hier en daar wat over argv[] maar kan het allemaal niet plaatsen. Ergens heb ik de melk horen klotsen, maar weet de tepel niet te vinden. Wie heeft een oplossing?
Thnx!
Ik ben echt een totale n00b mbt C programmeren. Ik gebruik voornamelijk shell scripts. Het volgende probleem. Ik moet een programma starten met een wrapper.
Het volgende voorbeeld wordt gegeven:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| #include <unistd.h>
int main (int argc, char *argv[])
{
char *arg [3];
char *env [1];
arg [0] = "httpdsctl";
if (argc == 2)
arg [1] = argv [1];
else
arg [1] = NULL;
arg [2] = NULL;
env [0] = NULL;
setuid (0);
execve ("/u02/ias/Apache/Apache/bin/apachectl", arg, env);
return 0;
} |
Maar dit vangt de parameters die meegegeven zijn aan de wrapper niet af. Wat ik wil is het volgende:
linuxbox # ./wrapper start
De wrapper moet dan de "start" optie meenemen en doorgeven aan het apachectl programma. In shell scripts doe je dat mooi met $1, maar met dit C programma wil het niet echt lukken. Ik lees hier en daar wat over argv[] maar kan het allemaal niet plaatsen. Ergens heb ik de melk horen klotsen, maar weet de tepel niet te vinden. Wie heeft een oplossing?
Thnx!