我是一个cpp的初学者,想问你如何在应用程序启动时检查名称是否是“test.exe”,如果它已经是,它只会打印“是的,这是正确的”,如果它不是,它将重命名为test.exe
尝试在网上搜索它,我只能找到一个只指定文件名重命名它的函数。 ES:
int value;
value = rename("fake.exe", "test.exe");
但是,如果人们将其重命名为不同于fake.exe
的名称,则显然无法工作。
在一些答案后编辑:伙计们,正如我所说的,代码工作,但只有当文件的名称(在本例中)是fake.exe,没有人会这样重命名它。
所以我要求得到一部分代码来更改应用程序的名称,不管它是什么名字。
在许多系统中,main
中argv
的第一个元素是可执行文件的路径。 您可以使用它:
int main(int argc, char **argv) {
/* Some very important checks */
int value = rename(argv[0], "test.exe");
}
您应该检查当前工作目录是否是可执行文件的目录,否则这也将移动文件,并可能覆盖另一个文件。
argv[0]是指向空终止的多字节字符串的初始字符的指针,该字符串表示用于调用程序本身的名称(如果执行环境不支持,则为空字符串“”)。
https://en.cppreference.com/W/cpp/language/main_function
还要记住,您的程序可以通过符号链接调用。 在这种情况下,符号链接的路径被传递到main
。
int value; char oldname[] = "fake.exe""; char newname[] = "test.exe""; value = rename(oldname, newname);