I run a Qt application, what I want to know is this running binary file name.
I must (partially) disagree with the other comments that it is not a Qt question: There is a Qt method QCoreApplication::applicationFilePath()
which gives the directory+filename of the executable.
On Linux this will try to use /proc
, and on Windows perhaps GetModuleFileName()
. According to the docs it will fall back to argv[0]
.
You could then use QFileInfo
to split it into an executable name and a directory.
QFileInfo(QCoreApplication::applicationFilePath()).fileName()
QCoreApplication::applicationFilePath: Please instantiate the QApplication object first
–
Vincentia QApplication a(argc, argv); QString appPath = a.applicationFilePath();
–
Orthorhombic The Qapplication parses the commandline arguemnts, the first entry is the name of the executable - this is roughly the same as argv[0] in standard C but has a few extra complexities on windows if you have a Unicode build or if the application is started as a service
Again not really a Qt question. To find the name of the binary file executed it would be something like.
#include <iostream>
using namespace std;
int main(int argc, char **argv)
{
cout << argv[0] << endl;
return 0;
}
argv[0]
is not required to actually hold any useful information about the executable. see https://mcmap.net/q/175168/-when-can-argv-0-have-null/… for details. –
Nosology © 2022 - 2024 — McMap. All rights reserved.
QCoreApplication::applicationDirPath()
. – Tericaterina