c++设置特定文件名才能运行否则就直接关闭自身进程

如题
c++ 获取自身文件名并设置固定的文件名,如果修改文件名再运行就直接关闭进程
想要特定文件名才能运行否则就直接关闭自身进程
要安卓可以运行的

int main(int argc,char **argv) 
{
    if (strcmp(argv[0],"固定的文件名.exe")) exit(1);
    //...
}

获取运行的exe文件名,与你想设置的文件名做对比,如果不相同则直接退出主进程就可以了啊。获取本运行exe文件名的方法,对于main函数int main(int argc, char *argv[]),其中的argv存储运行的exe的命令行参数,其中第一个就是运行的exe的全路径文件名argv[0]就是你要的参数,直接取得和你想设置的文件名比对,不一样直接return 0就好了。一辈子请采纳谢谢!

上面写的没有问题。题主后追.exe去掉就直接可以在linux使用
if(std::string(argv[0]).find("文件名") == -1) exit(1);

在main函数下就这一句而已。

是想让一个文件修改为固定文件名,不允许修改为其他文件名?

运行效果及代码如下:

img

#include <iostream>
#include <Windows.h>
#include <cstring>
using namespace std;

int main()
{
    char szFileFullPath[MAX_PATH], szProcessName[MAX_PATH];
    GetModuleFileNameA(NULL, szFileFullPath, MAX_PATH);//获取文件路径
    int length = strlen(szFileFullPath);
    for (int i = length - 1; i >= 0; i--)//从路径后面开始找\,即倒着找右斜杠
    {
        if (szFileFullPath[i] == '\\')//找到第一个\,就可以马上获取进程名称了
        {
            i++;
            for (int j = 0; i <= length; j++)//结束符\0不能少,即i=length
            {
                szProcessName[j] = szFileFullPath[i++];
            }
            break;
        }
    }

    cout << "当前可执行程序文件名:" << szProcessName << endl; //输出当前可执行程序文件名

    //跟固定的文件名比较
    if (strcmp(szProcessName, "你的固定文件名.exe") != 0)
    {
        cout << "文件名被修改!!" << endl;
        return 0;
    }
        


    return 0;
}