C++ &引用;“不是目录”;在编写内核配置时

C++ &引用;“不是目录”;在编写内核配置时,c++,linux,qt,sysctl,C++,Linux,Qt,Sysctl,我试图在Qt中使用这个函数在Linux系统上切换IPv6。问题是它无法打开文件,只是报告“不是目录” bool切换\u ipv6(常量bool&enabled){ 常量std::向量ipv6\u内核\u选项\u文件={ “/proc/sys/net/ipv6/conf/all/disable\u ipv6” “/proc/sys/net/ipv6/conf/default/disable_ipv6” “/proc/sys/net/ipv6/conf/lo/disable\u ipv6” }; 用

我试图在Qt中使用这个函数在Linux系统上切换IPv6。问题是它无法打开文件,只是报告“不是目录”

bool切换\u ipv6(常量bool&enabled){
常量std::向量ipv6\u内核\u选项\u文件={
“/proc/sys/net/ipv6/conf/all/disable\u ipv6”
“/proc/sys/net/ipv6/conf/default/disable_ipv6”
“/proc/sys/net/ipv6/conf/lo/disable\u ipv6”
};
用于(常量自动和文件名:ipv6\u内核\u选项\u文件){
QFile内核_选项_文件(filename.c_str());
if(kernel_option_file.open(QIODevice::WriteOnly)){
QTextStream流(&kernel\u option\u文件);

向量初始化中缺少流逗号:

const std::vector<std::string> ipv6_kernel_option_files = {
    "/proc/sys/net/ipv6/conf/all/disable_ipv6"
    "/proc/sys/net/ipv6/conf/default/disable_ipv6"
    "/proc/sys/net/ipv6/conf/lo/disable_ipv6"
};
const std::vector<std::string> ipv6_kernel_option_files = {
    "/proc/sys/net/ipv6/conf/all/disable_ipv6",
    "/proc/sys/net/ipv6/conf/default/disable_ipv6",
    "/proc/sys/net/ipv6/conf/lo/disable_ipv6"
};
考虑到

"/proc/sys/net/ipv6/conf/all/disable_ipv6"
是一个文件,而不是目录,它不能包含路径的其余部分

在向量初始化中使用逗号分隔路径:

const std::vector<std::string> ipv6_kernel_option_files = {
    "/proc/sys/net/ipv6/conf/all/disable_ipv6"
    "/proc/sys/net/ipv6/conf/default/disable_ipv6"
    "/proc/sys/net/ipv6/conf/lo/disable_ipv6"
};
const std::vector<std::string> ipv6_kernel_option_files = {
    "/proc/sys/net/ipv6/conf/all/disable_ipv6",
    "/proc/sys/net/ipv6/conf/default/disable_ipv6",
    "/proc/sys/net/ipv6/conf/lo/disable_ipv6"
};
const std::vector ipv6\u内核\u选项\u文件={
“/proc/sys/net/ipv6/conf/all/disable_ipv6”,
“/proc/sys/net/ipv6/conf/default/disable_ipv6”,
“/proc/sys/net/ipv6/conf/lo/disable\u ipv6”
};