xcode를 사용하고 있으며 경로 끝에 앱 이름없이 내 앱이 실행되는 경로를 가져 오려고했지만 다음과 같이 시도했습니다.앱 끝에 앱 이름이없는 앱 경로를 가져옵니다.
printf("%s\n", argv[0]);
내 앱이 실행되는 올바른 경로를 제공하지만 내 앱 이름으로 끝납니다. 앱 이름을 제거하려면 어떻게해야하나요?
xcode를 사용하고 있으며 경로 끝에 앱 이름없이 내 앱이 실행되는 경로를 가져 오려고했지만 다음과 같이 시도했습니다.앱 끝에 앱 이름이없는 앱 경로를 가져옵니다.
printf("%s\n", argv[0]);
내 앱이 실행되는 올바른 경로를 제공하지만 내 앱 이름으로 끝납니다. 앱 이름을 제거하려면 어떻게해야하나요?
사용 있는 dirname
#include <iostream>
#include <libgen.h>
int main(int argc, char* argv[])
{
std::string dir = dirname(argv[0]);
std::cout << dir << std::endl;
}
응용 프로그램 실행 :
$/data/temp/test
출력 :
$/data/temp
dirname
기능을 사용할 수 있습니다.
사용 방법에 대한 예를 들어 주시겠습니까? 그것은 간단 할 수도 있지만, 실수를 피하기 위해 –
@JhsajdaHhas 빌트에서 대답을 참조하십시오. –
사용 std::string::find_last_of
은 (/
경우 * nix에서 스크립트, 윈도우 경우 \
) 경로 구분자의 마지막 인스턴스를 발견하고 그 인덱스까지 모든 것을 복사 std::string::substr
를 사용합니다.
예 :
std::string file = argv[0];
std::string path = file.substr(0,file.find_last_of("/"));
이
마음에 들지 않으면 코드의 작은 예제를 보여 주시겠습니까 –
당신이 bash는 pwd
의 동등한를 찾고 있다면 내 코드에서 어떤 바보 같은 실수를 금지, 당신이 원하는 무엇을해야합니까, 당신은 사용할 수 있습니다
#include <unistd.h>
char *getcwd(char *buf, size_t size);
이전에 chdir()을 호출했다면주의하십시오. 이것은 당신이 찾고있는 경로를 반환하지 않습니다.
장래에 다른 사람들을 돕기 위해 그것을 사용하는 방법을 보여주세요. –
dirname()은 파일 이름을 제거하려는 경우 실제로 더 좋은 태도입니다. 전체 경로. getcwd()는 현재 작업 디렉토리 인 쉘의 pwd와 동일한 출력을 제공합니다 (변경되지 않은 경우 바이너리를 호출 한 디렉토리) – davak
언어 (아니, C/C++의 프로그래밍 언어가 아닙니다)? –