open()
을 호출 할 때 pathname
과 선택 사항 인 flags
이 주어진 파일 설명자를 반환한다는 것은 잘 알려져 있습니다. 경로 이름이 디렉토리가 아닌 경우POSIX에서만 파일 열기
오픈이 실패 원인 : man page for
open()
에서int fd; if ((fd = open(pathname, O_RDONLY)) == -1) { printf("Could not open file\n"); return; }
는, 플래그
O_DIRECTORY
어디에 정의된다. 이 플래그는 커널 버전 2.1.126에 추가되었으므로 FIFO 또는 테이프 장치에서 opendir (3)이 호출 된 경우 서비스 거부 문제가 발생하지 않도록하려면 서비스 문제가 발생하지 않도록하십시오.
그러나 나는 오히려 파일보다 디렉토리에 실패 open()
을 야기 O_FILE
같은 무언가를 찾을 수가 없습니다.
stat()
을 호출하는 대신 open()
또는 pathname
이 파일인지 다른 방법으로 전달할 수있는 플래그가 있습니까?