rename()返回-1.如何知道为什么重命名失败?

Imr*_*qat 6 c++ rename file-rename

我正在使用c ++ stdio.h

int rename ( const char * oldname, const char * newname );
Run Code Online (Sandbox Code Playgroud)

rename()函数重命名文件夹但偶尔无法重命名该文件夹并返回-1.

有没有办法知道为什么rename()失败?
任何通过任何c ++函数知道这个错误解释的方法.

Ale*_*lex 9

应该可以从errno.h中获取具体错误

#include <errno.h>
#include <string.h>
...
if(rename("old","new") == -1)
{
    std::cout << "Error: " << strerror(errno) << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

返回的错误可能是特定于操作系统的.http://linux.die.net/man/3/rename显示了使用linux时通常可以获得的内容.