입력하는 동안이 질문에 부딪 혔습니다 man 2 open
. 그것은 두 종류의 오픈이 있다고 말합니다. 하나는 두 개의 인수를 가진 것이고 다른 하나는 세 가지입니다! 지난번에 C에서 함수를 오버로드 할 수 없음을 확인했습니다. 어떻게이 작업을 수행 했습니까? 그들은 C ++로 작성 했습니까?
int open(const char * pathname, int flags);
int open(const char * pathname, int flags, mode_t mode);
아니요, 그들은 단지 가변 함수를 사용했습니다.
int open(const char * pathname, int flags, ...);
이것은 마지막 인수를 mode
선택적으로 만듭니다 . 프로토 타입은 실제 인터페이스가 아닌 함수 사용 방법 만 보여줍니다.
물론 실제 오버로딩과 달리 컴파일러는 mode
인수를 유형 검사 할 수 없으므로 사용자는 2 개 또는 3 개의 인수 만 전달되도록 특별히주의해야하며 세 번째 인수는 mode_t
.
BTW, man 2 open
BSD (OS X 포함) 를 확인하면 위와 같이 정확한 프로토 타입을 보여줍니다 .
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다