什么是_fullpath和GetFullPathName之间的区别?
当然,我是指分别比较它们的ANSI / Unicode变体
- Ansi:
_fullpath
与GetFullPathNameA
相比 - Uni:
_wfullpath
与GetFullPathNameW
相比
看起来_fullpath具有更好更简单的API,因为它允许为您分配缓冲区,但我想知道如果我用_wfullpath替换GetFullPathNameW会错过什么?
_fullpath()
很可能调用 GetFullPathName()
。在这种情况下,_fullpath()
就像是对 GetFullPathName()
的包装器,这就解释了为什么它的接口似乎更简单、更易于使用。_fullpath
是 C 库的一部分。
GetFullPathName
是 Win32 API。
因此,_fullpath
是跨平台的,而 GetFullPathName
则是仅限于 Windows 的。
在这种情况下,C 函数通常依赖于底层操作系统。因此,在 Windows 程序中,_fullpath
很可能归结为 GetFullPathName()
。但你真的不需要关心这个。
_fullpath
不具跨平台性,在POSIX平台上无法使用,它实际上是专为Windows设计的。POSIX平台上类似的调用是realpath
,并且功能更加强大。 - Artyom