C++ 为什么将可执行文件重命名为临时文件的这段代码不能按预期工作?

C++ 为什么将可执行文件重命名为临时文件的这段代码不能按预期工作?,c++,file,temporary,C++,File,Temporary,我假设在下面的代码片段中,该文件将被重命名为临时文件,然后在执行完成后消失。但它不是那样工作的,并且在运行后可执行文件仍然存在 运行时不能重命名文件吗 包括 int MAINT argc_,字符**argv_ { 字符重命名_路径_缓冲区[L_tmpnam_s]; tmpnam_srename_path_buffer,L_tmpnam_s; 重命名EARGV_u0],重命名_路径_缓冲区; } 文件在执行时被锁定,不允许重命名。 尝试在运行时手动重命名,会得到相应的错误消息;还是检查重命名函数的

我假设在下面的代码片段中,该文件将被重命名为临时文件,然后在执行完成后消失。但它不是那样工作的,并且在运行后可执行文件仍然存在

运行时不能重命名文件吗

包括 int MAINT argc_,字符**argv_ { 字符重命名_路径_缓冲区[L_tmpnam_s]; tmpnam_srename_path_buffer,L_tmpnam_s; 重命名EARGV_u0],重命名_路径_缓冲区; }
文件在执行时被锁定,不允许重命名。
尝试在运行时手动重命名,会得到相应的错误消息;还是检查重命名函数的返回值。

是否考虑检查返回值和ErnO?非常肯定的临时文件在退出时不会立即得到。系统在重启或CRON作业等最后删除它们。当我调用重命名时,我得到-1。我想你是对的@cHao,由于某些原因,我无法将文件重命名为它。哦,我得到了错误13,这是错误\u无效\u数据我可以将正在运行的可执行文件重命名为temp.file,但当我尝试将文件重命名为临时路径时,它永远不会工作。重命名函数的结果是-1。重命名只适用于不同的名称。您不能重命名为其他文件夹,这称为移动。