I noticed that there are two prototypes for open system call in linux,
int open(const char *pathname, int flags);
int open(const char *pathname, int flags, mode_t mode);
I would like to know how the C compiler can differentiate b/w both calls, given C compiler doesn't support function overloading?