在阅读_splitpath_s()
. 它在其第一个参数中获取磁盘项目的路径(例如 C:\Temp\MyFile.exe),然后将其拆分为驱动器、目录、文件夹和扩展名。然而,奇怪的是,它会在其第三个参数中询问将保存驱动器名称的字符串缓冲区的长度。
据我所知,驱动器号只能是两个字母的字符串。一个字母后跟一个分号,如A:
, B:
, C:
, 等。因此,在所有情况下,它必须始终是两个字符的字符串。但如果是这样,为什么要_splitpath_s()
询问驱动器号的长度?在任何情况下哪个驱动器号可以采用不同的格式?如果它不询问它的长度并假设它是 2,那么最坏的情况会发生什么问题?
errno_t _splitpath_s(
const char * path,
char * drive,
size_t driveNumberOfElements,
char * dir,
size_t dirNumberOfElements,
char * fname,
size_t nameNumberOfElements,
char * ext,
size_t extNumberOfElements
);