Por que 'man 2 open' diz que existem dois tipos de open?

Encontrei essa pergunta enquanto digitavaman 2 open. Ele diz que existem dois tipos de abertura, uma com duas args e outra com três! da última vez que verifiquei, não foi possível sobrecarregar as funções em C. Como eles fizeram isso? eles escreveram em C ++?

int open(const char * pathname, int flags);
int open(const char * pathname, int flags, mode_t mode);

questionAnswers(3)

yourAnswerToTheQuestion