it is not clear to me what your issue is. the manual clearly states that you can pass OEXCL to create to get atomic create operation so in what way are you trying to change the system calls?
Since create may succeed even if the file exists, a special
mechanism is necessary for those applications that require
an atomic create operation. If the OEXCL (0x1000) bit is
set in the mode for a create, the call succeeds only if the
file does not already exist; see open(5) for details.
--
cinap
