como alterar o diretório de trabalho para o local do programa

Eu quero usar o c ++ para abrir um arquivo no Mac OS.

Se eu executar o programa no Xcode, o diretório de trabalho é o mesmo com o programa, o que é bom. No entanto, se eu tentar executar o programa no terminal, o diretório de trabalho é sempre "Usuários / nome de usuário". Você sabe como alterar o diretório de trabalho para o local do programa?

Aqui está o código de exemplo:

#include <iostream>
#include <fstream>
using namespace std;
int main (int argc, const char * argv[])
{
    char * dir = getcwd(NULL, 0); 
    cout << "Current dir: " << dir << endl;

    ifstream fin("hi.txt");
    if (fin.is_open()) cout << "File is Open" << endl;
    else cout << "File is not open" << endl;    
    fin.close();
    return 0;
}

questionAnswers(3)

yourAnswerToTheQuestion