In my Linux machine, i have configured the network namespace. With shell script or command line or system command I was able to fetch the file content present in the network namespace.
ip netns exec test_namespace cat /var/test_namespace/route.conf
Output:
cardIP=10.12.13.1
In a C program, I can use system("ip netns exec test_namespace cat /var/test_namespace/route.conf")
command to get the output. But I prefer not to use this option.
Looking for an alternative method, I am not sure about the system call setns, how to use it. Any ideas?
If you're alergic to system
, you can use popen
to read the script output as a file:
Example
#include <stdio.h>
/* 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);