我假设在下面的代码片段中,文件将被重命名为临时文件,然后在执行完成后消失。但它不是那样工作的,运行后可执行文件仍然存在。
难道文件不能在运行时重命名吗?
#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);
}
最佳答案
文件在执行时被锁定以防止重命名。
尝试在它运行时手动重命名它,你会得到相应的错误信息;或检查重命名函数的返回值。
关于c++ - 为什么这个将可执行文件重命名为临时文件的片段不能按预期工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48590209/