Cómo cambiar el directorio de trabajo a la ubicación del programa.

Quiero usar c ++ para abrir un archivo en Mac OS.

Si ejecuto el programa bajo Xcode, el directorio de trabajo es el mismo que el del programa, lo cual está bien. Sin embargo, si intento ejecutar el programa en la terminal, el directorio de trabajo siempre es "Usuarios / nombre de usuario". ¿Sabe cómo cambiar el directorio de trabajo a la ubicación del programa?

Aquí está el código de ejemplo:

#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;
}

Respuestas a la pregunta(3)

Su respuesta a la pregunta