打开输出流时出错

Error in opening an output stream

在我的代码中,我打开了一个输出流并将数据附加到文件的末尾.. 如果没有这样的文件,流应该创建一个,但问题是它没有。

这是代码片段:

char output_file[100];
strcpy(output_file, predicate.c_str());            
ofstream output_file_ptr1; 

output_file_ptr1.open(output_file,ios::out | ios::app | ios::binary );

if(output_file_ptr1.is_open()){

        output_file_ptr1 << subject <<" " << object <<"\n";
        output_file_ptr1.close();
}

else{
            printf("Error opening out file \n");
            return -1;
}

主语、宾语和谓语是我之前创建的可变字符串。

知道它不会创建文件吗? + 将数据附加到文件末尾对我来说非常重要。

更新: predicate 是我需要的确切文件名,但它不是通常的命名,即

< http://www.w3.org/1999/02/22-rdf-syntax-ns#type>

是一个例子

诸如 <w3.org/1999/02/22-rdf-syntax-ns#type> 之类的值在大多数环境中都不是有效的文件名。 Unix 风格的操作系统(例如 Linux)不支持文件名中的“/”(除非目录结构匹配)。