libxml2最新版本是否支持XSD 1.1进行XML验证?
我使用libxml2 v2.6.30进行XSD(schema)1.0的XML验证.但是,我不支持XSD v1.1.我不确定最新版本的libxml2是否支持XSD 1.1.任何的想法?
我正在尝试使用fopenapi 检查文件的存在.我希望if fopen返回NULL然后意味着文件不存在.我提供file_name输入命令行参数.
我的代码看起来像这样:
FILE *file = NULL;
file = fopen(file_name, "rb");
if(file == NULL)
{
/* file is not found */
}
else
{
/* file is found */
}
Run Code Online (Sandbox Code Playgroud)
如果我提供.或/ file_name然后它接受它作为有效的文件名并假装它检测到文件.fopen在Linux上不应该在这种情况下返回NULL ?
我在Windows上尝试了同样的事情,它正如我期望的那样工作(fopen返回NULL).
背景:
用户将提供路径和文件名(xml文件)作为应用程序的输入选项,然后通过检查指定路径上是否存在(xml)文件来验证此选项.
用户可以将任何字符串作为路径,因此fopen除非用户输入,否则足以检测它.或者/ - 这些当然不是必需的(xml)文件 - 因此我希望fopen将其检测为错误,我们将向用户报告"找不到文件".但是,fopen接受它们作为有效文件,当我们尝试处理它时,还有其他一系列错误.
根据此ELF 规范:ELF 目标文件包含各种部分,其中之一是符号表部分 .symtab,其中包含所有符号(文件、函数、对象等)的信息。
ELF 包含符号表中每个符号的名称、属性标志、类型、值和绑定等信息。
文件、函数或对象(数组、变量、字符串)等的对象名称实际上暴露了代码的内部信息。这样,任何人都可以分析ELF(使用strings,objdump或readelf工具),看到此信息,并获得对事物的内部,其应当保密的代码的想法。
为了可读性和可维护性,我们编写了开发人员可以理解的代码。所以,我们需要继续使用正确的文件名和变量名等。我们不能使用代码混淆来掩盖它们,因为它会导致难以维护。
问题(已编辑):有什么方法可以在可执行 ELF 的符号表中隐藏或删除符号“名称”,以便没有人可以了解代码并且可执行文件仍然可以运行?