Winapi WIN32_FIND_DATA.cFileName是否以null结尾?

Winapi WIN32_FIND_DATA.cFileName是否以null结尾?,winapi,Winapi,关于cFileName成员的说明文件如下: cFileName 文件名 假设由FindFirstFile或FindNextFile返回的WIN32\u FIND\u数据以null结尾是否安全?我很紧张,可能有一种约定,如果没有空终止符,那么字符串将是MAX_PATH长的。上面的内容对我来说已经足够好了: 假设已正确填写(即FindFirstFile/FindNextFile成功),则为。否则,你怎么知道长度是多少 如果字符串长度不正确,您将如何确定它?我没有找到权威信息,但如果Windows

关于
cFileName
成员的说明文件如下:

cFileName

文件名

假设由
FindFirstFile
FindNextFile
返回的
WIN32\u FIND\u数据
以null结尾是否安全?我很紧张,可能有一种约定,如果没有空终止符,那么字符串将是MAX_PATH长的。

上面的内容对我来说已经足够好了:


假设已正确填写(即
FindFirstFile
/
FindNextFile
成功),则为。否则,你怎么知道长度是多少


如果字符串长度不正确,您将如何确定它?我没有找到权威信息,但如果Windows API中除此之外的所有字符串都是C样式的字符串,我会感到惊讶。假设它已正确填写(即
FindFirstFile
/
FindNextFile
成功),是的。否则,你怎么知道长度是多少?@IInspectable这就是我的感觉。但是我想知道是否有一些奇怪的模式,如果没有空终止符,那么字符串将
MAX\u PATH
长。这将是一场噩梦,我同意。我并不反对这个答案,但我可以想象一个方案,如果名称小于MAX_PATH,它将以零结尾,如果不是以零结尾,那么长度就是MAX_PATH。你知道,就像CP/M和其他早期的文件系统是如何做到这一点的,这导致了没有人期望从strncpy得到的古怪行为。@Adrian这就是我想象的方案。
TCHAR    cFileName[MAX_PATH];