'맨투 오픈'은 왜 두 종류의 오픈이 있다고하나요?

Amir Zadeh :

입력하는 동안이 질문에 부딪 혔습니다 man 2 open. 그것은 두 종류의 오픈이 있다고 말합니다. 하나는 두 개의 인수를 가진 것이고 다른 하나는 세 가지입니다! 지난번에 C에서 함수를 오버로드 할 수 없음을 확인했습니다. 어떻게이 작업을 수행 했습니까? 그들은 C ++로 작성 했습니까?

int open(const char * pathname, int flags);
int open(const char * pathname, int flags, mode_t mode);
케니 TM :

아니요, 그들은 단지 가변 함수를 사용했습니다.

int open(const char * pathname, int flags, ...);

이것은 마지막 인수를 mode선택적으로 만듭니다 . 프로토 타입은 실제 인터페이스가 아닌 함수 사용 방법 만 보여줍니다.

물론 실제 오버로딩과 달리 컴파일러는 mode인수를 유형 검사 할 수 없으므로 사용자는 2 개 또는 3 개의 인수 만 전달되도록 특별히주의해야하며 세 번째 인수는 mode_t.


BTW, man 2 openBSD (OS X 포함) 를 확인하면 위와 같이 정확한 프로토 타입을 보여줍니다 .

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

목적지 << source.rdbuf(); 하고있다 ? 왜 너무 많은 오픈 클로즈

이름 R의 다중 오픈 세션

오라클의 상업 핫스팟 JVM은 오픈 JDK를 통해 어떤 성능 이점이 있습니까?

TCP 소켓에서 액티브 오픈과 패시브 오픈의 차이점은 무엇입니까?

마지막 하이픈을 찾은 다음 두 개의 공백을 오른쪽으로 이동하고 거기에서 오른쪽으로 모든 것을 삭제하는 정규식

Go-이상한 JSON 하이픈 비 정렬 화 오류

vaired 오픈 소스 라이브러리의 다중 zlib, 링커 오류

오픈 카트 전자 상거래 사이트의 첫 바이트 시간은 엄청납니다.

CSS 하이픈에서 오류 발생 (잘못된 속성 값)

쉘 스크립트에서 패턴 앞뒤의 단어를 선택하십시오 (하이픈은 패턴 임).

하이픈의 왼쪽과 오른쪽에 선행 0 추가

Elixir에 왜 두 종류의 기능이 있습니까?

오픈 CV를 사용하고 있는데 이 오류가 발생했습니다.

왜 두 개의 출력이 나오나요?

ClamAV보다 우분투 용 오픈 소스 바이러스 백신

ClamAV보다 우분투 용 오픈 소스 바이러스 백신

파이썬 정규식 알파벳과 숫자 사이에 하이픈 기호를 삽입하는 방법; 또한 두 알파벳 사이의 하이픈을 제거하십시오.

URL이있는 OpenCV 오픈 이미지

오픈, 고가, 저가, 5 분 동안 종가 주식 데이터 파이썬

왜 자바 (11)베이스 큰 있도록 도커 이미지입니까? (오픈 JDK : 11 JRE 슬림)

NosDB 오픈 소스에 두 번째 노드를 추가하는 방법은 무엇입니까?

C #은 데이터베이스에서 Excel로 데이터를 내 보냅니다. DLL 또는 오픈 소스 dlll 또는 모든 종류의 무료 dll없이

오픈 JDK와 AdoptOpenJDK의 차이

오픈 이력서의 선형 회귀?

오픈 소스 모델의 이점

그린 폴리곤은 오픈레이어에 표시되지 않습니다

오픈 레이어 스타일링은 상호 작용을 그립니다.

단어 사이의 공백만 하이픈으로 바꾸고 다른 공백은 모두 제거

코드 명 하나의 오픈 사이드 메뉴 프로그래밍 방식

TOP 리스트

뜨겁다태그

보관