Есть задача - установить новый ip-адрес интерфейса из работающей программы. Из консоли делается просто: "ifconfig eth0 inet 192.168.1.10".
Попробовал аналогично вызвать ifconfig из пользовательской программы:
Код
int main(int argc, char* argv[], char* enpv[])
{
pid_t num;
int status;
num = fork();
if(num == 0)
{
execl("ifconfig", "eth0", "inet", "10.0.2.16");
}
else
{
wait(&status);
printf("ending");
}
return 0;
}
{
pid_t num;
int status;
num = fork();
if(num == 0)
{
execl("ifconfig", "eth0", "inet", "10.0.2.16");
}
else
{
wait(&status);
printf("ending");
}
return 0;
}
Запускаю, проверяю - адрес не меняется. Что я делают не так? Запускаю эту программу под рутом.
Менять адрес через перезапись в файлах конфигурации - не хочу, т.к. у разных дистрибутивов эти файлы лежат в разных папках.
Заранее спасибо.