while 1:
        try:
            return path, os.fdopen(os.open(path, flags, 0o666), 'wb')
        except OSError as e:
            if e.errno != errno.EEXIST: