Как войти в сетевое пространство имен и прочитать содержимое файла с помощью программы C - PullRequest
0 голосов
/ 07 июня 2018

На моем компьютере с Linux я настроил сетевое пространство имен.С помощью сценария оболочки, командной строки или системной команды мне удалось получить содержимое файла, присутствующее в пространстве имен сети.

ip netns exec test_namespace cat /var/test_namespace/route.conf

Вывод:

cardIP=10.12.13.1

В программе на C я могуиспользуйте команду system("ip netns exec test_namespace cat /var/test_namespace/route.conf"), чтобы получить вывод.Но я предпочитаю не использовать эту опцию.

В поисках альтернативного метода я не уверен насчет системных вызовов, как их использовать.Есть идеи?

1 Ответ

0 голосов
/ 07 июня 2018

Если у вас предупреждение system, вы можете использовать popen, чтобы прочитать вывод сценария в виде файла:


Пример

/* the command to execute */
FILE *f = popen("ls", "r");

/* Here, we should test that f is not NULL */
printf("result of `ls`:\n");

/* read process result */
char buffer[256];
while (fgets(buffer, sizeof buffer, f)  
{
    puts(buffer);
}

/* and close the process */
pclose(f);
...