![경로 확인을 위해 openat()을 사용하면 어떤 단점이 있습니까?](https://linux55.com/image/181771/%EA%B2%BD%EB%A1%9C%20%ED%99%95%EC%9D%B8%EC%9D%84%20%EC%9C%84%ED%95%B4%20openat()%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%98%EB%A9%B4%20%EC%96%B4%EB%96%A4%20%EB%8B%A8%EC%A0%90%EC%9D%B4%20%EC%9E%88%EC%8A%B5%EB%8B%88%EA%B9%8C%3F.png)
매뉴얼 페이지에는 openat(2)
에 비해 많은 장점이 설명되어 있지만 open(2)
단점은 전혀 다루지 않는 것 같습니다.
C에서 경로를 수동으로 연결하는 것은 어려울 수 있으므로(불행히도 POSIX의 일부가 아닌 대부분의 할당 논리를 원하지 않거나 오프로드할 수 없다고 가정할 때 asprintf(3)
), 이에 대한 파일 설명자를 구할 생각입니다. 기본 디렉토리를 만들고 이를 사용하여 이 디렉토리와 관련된 파일에 액세스합니다 openat(2)
.
이 접근 방식에 단점이 있나요?
답변1
한 가지 단점이 있습니다. openat
이 방법을 사용하려면 추가 파일 설명자가 필요합니다.
내가 아는 한 이것이 유일한 것입니다(제 생각에는 사소한 것입니다).