_chdir和SetCurrentDirectory在windows中有什么区别?

有什么区别,我应该select一个吗?

Solutions Collecting From Web of "_chdir和SetCurrentDirectory在windows中有什么区别?"

他们达到相同的结果,但属于不同的API,所以他们返回结果,并以不同的方式报告错误。

如果您已经使用其他API,请选择其中一个。 如果不是,SetCurrentDirectory()更“Windowsy”,而_chdir()更类似于POSIX API。 如果您想将代码移植到Linux平台上,请使用_chdir(); 如果你知道你只能运行在Windows平台上的代码,SetCurrentDirectory()。

_chdir实际上在内部使用SetCurrentDirectory ,所以在大多数情况下它们是可以互换的。 然而, _chdir一件事:它更新当前驱动器的当前目录,存储在一个环境变量中。 这是需要的,正如_tchdir的注释_tchdir ,因为“其他函数(fullpath,spawn等)需要设置它们”。

我不知道现在需要多少,但是我会说 – 如果你使用POSIX风格的函数来进行文件操作,路径操作,进程创建等,那么就使用_chdir 。 如果您直接使用Win32 API函数,请使用SetCurrentDirectory

SetCurrentDirectory是一个宏将根据生成设置解析为SetCurrentDirectoryA或SetCurrentDirectoryW。 没有系统为_chdir和_wchdir提供宏。

SetCurrentDirectory的MSDN页面声明参数可以是相对于当前工作目录或绝对的。 _chdir的文档没有说,但似乎可以chdir()接受相对路径吗? 在Linux上。