为什么这个将可执行文件重命名为临时文件的片段不能按预期工作?
Why won't this snippet, to rename the executable to a temporary file, work as expected?
我假设在下面的代码片段中,文件将被重命名为临时文件,然后在执行完成后消失。但它不是那样工作的,可执行文件在 运行.
之后仍然存在
在 运行ning 期间不能重命名文件吗?
#include <iostream>
int main(int argc_, char** argv_)
{
char rename_path_buffer[L_tmpnam_s];
tmpnam_s(rename_path_buffer, L_tmpnam_s);
rename(argv_[0], rename_path_buffer);
}
文件在执行时被锁定,不能重命名。
尝试在运行时手动重命名,会得到相应的错误信息;或检查重命名函数的 return 值。
我假设在下面的代码片段中,文件将被重命名为临时文件,然后在执行完成后消失。但它不是那样工作的,可执行文件在 运行.
之后仍然存在在 运行ning 期间不能重命名文件吗?
#include <iostream>
int main(int argc_, char** argv_)
{
char rename_path_buffer[L_tmpnam_s];
tmpnam_s(rename_path_buffer, L_tmpnam_s);
rename(argv_[0], rename_path_buffer);
}
文件在执行时被锁定,不能重命名。
尝试在运行时手动重命名,会得到相应的错误信息;或检查重命名函数的 return 值。