Jawaban teratas untuk pertanyaan ini mencantumkan teknik untuk sejumlah besar OS.
string get_path( )
{
char arg1[20];
char exepath[PATH_MAX + 1] = {0};
sprintf( arg1, "/proc/%d/exe", getpid() );
readlink( arg1, exepath, 1024 );
return string( exepath );
}
Di Linux (Posix?) Anda memiliki tautan simbolik /proc/self/exe
yang tertaut ke jalur lengkap dari yang dapat dieksekusi.
Di Windows, gunakan GetModuleFileName
.
Jangan pernah mengandalkan argv[0]
, yang tidak dijamin bermanfaat.
Perhatikan bahwa jalur dan sistem file bukan bagian dari bahasa dan dengan demikian merupakan fitur yang bergantung pada platform.