I run a Qt application, what I want to know is this running binary file name.
3 Answers
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()
-
18+1. And for the application directory, you can use `QCoreApplication::applicationDirPath()`. – Cameron Jan 28 '13 at 05:03
-
3I got: ``QCoreApplication::applicationFilePath: Please instantiate the QApplication object first`` – GuySoft Mar 17 '16 at 10:10
-
qApp->applicationFilePath(); – tvorez Oct 31 '16 at 13:42
-
Thanks @Cameron. Was looking for that. :D – GeneCode Sep 20 '17 at 03:23
-
`QApplication a(argc, argv); QString appPath = a.applicationFilePath();` – Neurotransmitter Nov 02 '17 at 19:14
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

- 2,518
- 4
- 28
- 32

- 94,801
- 28
- 188
- 263
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;
}
-
2I'm unsure as to why your concern about it being a Qt question is relevant. The OP is simply stating the environment they're using, no different to if they had said "Linux" or Windows" or, for that matter, "C++". It's extra information which can help target the answers. In this particular case, it's useful because Qt provides a *much* better way to get this info - as per the ISO standard, `argv[0]` is not required to actually hold *any* useful information about the executable. see http://stackoverflow.com/questions/2794150/when-can-argv0-have-null/2794171#2794171 for details. – paxdiablo Nov 08 '16 at 01:04