'A replacement for C{os.open}.  This initializes state in this
L{MemoryIOSystem} which will be reflected in the behavior of the other
file descriptor-related methods (eg L{MemoryIOSystem.read},
L{MemoryIOSystem.write}, etc).
@param name: A string giving the name of the file to open.
@type name: C{bytes}
@param flags: The flags with which to open the file.
@type flags: C{int}
@param mode: The mode with which to open the file.
@type mode: C{int}
@raise OSError: With C{ENOSYS} if the file is not a recognized special
device file.
@return: A file descriptor associated with the newly opened file
description.
@rtype: L{int}'

@_privileged
def open(self, name, flags, mode=None):

    if (name in self._devices):
        fd = self._counter
        self._counter += 1
        self._openFiles[fd] = self._devices[name](self, flags, mode)
        return fd
    raise OSError(ENOSYS, 'Function    not    implemented')
