"~ / workspace / Test.txt"파일이 있지만 fd는 항상 -1을 반환합니다. 누군가 코드에 무엇이 잘못되었는지 힌트를 줄 수 있습니까? 감사.
int fd = open("~/workspace/Test.txt", O_RDONLY);
cout << "fd is "<<fd<<endl;
if (fd < 0) {
cout << "did not find file"<<endl;
return false;
}
(OS가 Linux와 같은 Posix라고 가정)
은 ~
확장되어야한다. 일반적으로 쉘이 확장합니다. 그러나 open
실제 파일 경로를 원합니다.
시도해 볼 수 있습니다.
std::string fname (getenv("HOME"));
fname += "/workspace/Test.txt";
int fd = open(fname.c_str(), O_RDONLY);
if (fd<0) {
std::cerr << "failed to open " << fname
<< " : " << strerror(errno) << std::endl;
return false;
}
참조 글로브 (7) , 만일 wordexp (3) , 의 GetEnv (3) , strerror는 (3) , 개방 (2) , 싸다 (7)
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다