C中是否有一个函数接受用户输入并返回输入是否为有效文件名?

C中是否有一个函数接受用户输入并返回输入是否为有效文件名?,c,function,C,Function,我只想让它读取输入并告诉它是否是一个有效的文件名,而不关心它是否真的存在 不幸的是,没有。文件名规范是特定于平台的(即Windows使用反斜杠来描绘目录,而Linux使用正斜杠)。如果有这样一个函数,它必须为每个操作系统独立编写。在一个操作系统中被认为有效的可能在另一个操作系统中无效。有效文件名在很大程度上取决于您运行的操作系统,这意味着没有这样的标准C函数。什么平台?在UNIX上,答案是1,因为每个字符串都是有效路径。我想知道文件名是否“有效”的唯一可靠方法是尝试用该名称保存(或读取)文件,由

我只想让它读取输入并告诉它是否是一个有效的文件名,而不关心它是否真的存在

不幸的是,没有。文件名规范是特定于平台的(即Windows使用反斜杠来描绘目录,而Linux使用正斜杠)。如果有这样一个函数,它必须为每个操作系统独立编写。在一个操作系统中被认为有效的可能在另一个操作系统中无效。

有效文件名在很大程度上取决于您运行的操作系统,这意味着没有这样的标准C函数。什么平台?在UNIX上,答案是
1
,因为每个字符串都是有效路径。我想知道文件名是否“有效”的唯一可靠方法是尝试用该名称保存(或读取)文件,由于底层文件系统是该主题的唯一权威来源。@David我认为更好的方法是根据定义的规则检查名称……什么是有效的?这是一个存在的名字吗?可以打开的名称(用于阅读或书写)?这是一个可以创建的名称吗?不需要先创建任何目录就可以创建的名称?您有权创建的名称?不代表目录的名称?不是块设备、字符设备、套接字等…?坏的符号链接怎么办?如果函数读取的名称不是有效名称,该函数会做什么?它从哪里读名字?你们的要求目前严重不足。