@whodgson
I'm not sure that I have heard anyone say the second. C and C++ are most like siblings with the same parent. C++ supports a lot but not all of the C standard, C definitely doesn't support all of the C++ standard.
The posted code snippet is not C and will not compile with C. C does not support function overloading and produces these diagnostics
2: error: conflicting types for 'open'
1: note: previous declaration of 'open' was here
Additionally no type is given for pathname.