Mac OS에서 파일을 여는 데 C++을 사용하고 싶습니다.작업 디렉토리를 프로그램 위치로 변경하는 방법
Xcode에서 프로그램을 실행하면 작업 디렉토리는 프로그램과 동일합니다. 그러나 터미널에서 프로그램을 실행하려고하면 작업 디렉토리는 항상 "Users/username"입니다. 작업 디렉토리를 프로그램 위치로 변경하는 방법을 알고 있습니까? 여기
샘플 코드입니다 :#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;
}
이 왜이 프로그램이 현재 디렉토리로 자신의 설치 디렉토리를 사용 하시겠습니까? 아마도 거기에 쓸 수 없을 것입니다 (소프트웨어가 제대로 설치 되었다면). 파일을 좀 더 편리하게 읽을 수는 있지만 논쟁의 여지가 있습니다. OTOH,'$ HOME/src/subdir/myprogram'에서 프로그램을 실행하면,'/ Applications/Doohickey.app/Contents/MacOS' 또는 '$ HOME' 또는 비슷한 것. 물론 그것은 프로그램이 무엇을하는지에 달려 있지만'chdir()'사용에 대해서는 조심해야합니다. –
나는 모든 파일을 함께 넣기를 원한다. 나는 창문을 많이 사용했다. Windows에서 명령 줄 프로그램을 실행할 때 해당 프로그램에 의해 생성 된 파일은 프로그램의 동일한 위치에 있어야합니다. 나는 당신의 요지를 얻는다. 나는 그것에 대해 생각합니다. 매우 감사합니다. –
Windows는 주로 다중 사용자 시스템이 아니며 각 사용자의 Unix 홈 디렉토리에 대한 아날로그가 없음을 기억하십시오. 이로 인해 프로그램은 모든 곳에서 데이터를 분산시킵니다. 유닉스 계열 시스템에서는 $ HOME 아래 어딘가에 데이터를 저장하는 것이 좋습니다. 예를 들어, 설정 정보는'$ HOME/.yourapp' 파일 (또는 디렉토리)에있을 수 있습니다. Mac OS X에서 어디에서 물건을 찾을 수 있는지 Apple 'OS X 휴먼 인터페이스 가이드 라인'을보십시오. –