gpt4 book ai didi

c - 如何使用C程序进入网络命名空间并读取文件内容

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:34:50 27 4
gpt4 key购买 nike

在我的 Linux 机器上,我配置了网络命名空间。使用 shell 脚本或命令行或系统命令,我能够获取网络命名空间中存在的文件内容。

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") 命令获取输出。但我不想使用此选项。

寻找替代方法,我不确定系统调用setns,如何使用它。有什么想法吗?

最佳答案

如果你对系统过敏,你可以使用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);

关于c - 如何使用C程序进入网络命名空间并读取文件内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50732595/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com