_fullpath与GetFullPathName区别

5

什么是_fullpath和GetFullPathName之间的区别?

当然,我是指分别比较它们的ANSI / Unicode变体

  • Ansi:_fullpathGetFullPathNameA相比
  • Uni:_wfullpathGetFullPathNameW相比

看起来_fullpath具有更好更简单的API,因为它允许为您分配缓冲区,但我想知道如果我用_wfullpath替换GetFullPathNameW会错过什么?

2个回答

3
您不会错过任何东西。事实上,_fullpath() 很可能调用 GetFullPathName()。在这种情况下,_fullpath() 就像是对 GetFullPathName() 的包装器,这就解释了为什么它的接口似乎更简单、更易于使用。
您只需有多种方法来完成同一任务。只要其中任何一种方法不过时且能够执行所需的任务,选择完全取决于您。

-2

_fullpath 是 C 库的一部分。 GetFullPathName 是 Win32 API。

因此,_fullpath 是跨平台的,而 GetFullPathName 则是仅限于 Windows 的。

在这种情况下,C 函数通常依赖于底层操作系统。因此,在 Windows 程序中,_fullpath 很可能归结为 GetFullPathName()。但你真的不需要关心这个。


6
_fullpath不具跨平台性,在POSIX平台上无法使用,它实际上是专为Windows设计的。POSIX平台上类似的调用是realpath,并且功能更加强大。 - Artyom

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接