<Type Name="UnixFileInfo" FullName="Mono.Unix.UnixFileInfo">
  <TypeSignature Language="C#" Value="public sealed class UnixFileInfo : Mono.Unix.UnixFileSystemInfo" />
  <AssemblyInfo>
    <AssemblyName>Mono.Posix</AssemblyName>
    <AssemblyVersion>2.0.0.0</AssemblyVersion>
  </AssemblyInfo>
  <ThreadingSafetyStatement>All public static members of this type are safe for multithreaded operations. No instance members are guaranteed to be thread safe.</ThreadingSafetyStatement>
  <Base>
    <BaseTypeName>Mono.Unix.UnixFileSystemInfo</BaseTypeName>
  </Base>
  <Interfaces />
  <Members>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public UnixFileInfo (string path);" />
      <MemberType>Constructor</MemberType>
      <Parameters>
        <Parameter Name="path" Type="System.String" />
      </Parameters>
      <Docs>
        <param name="path">A <see cref="T:System.String" /> containing the file 
        to query.</param>
        <summary>Creates a new <see cref="T:Mono.Unix.UnixFileInfo" />
        instance containing information about the file
        <paramref name="path" />.</summary>
        <exception cref="T:System.ArgumentNullException">
          <paramref name="path" /> is <see langword="null" />.
        </exception>
        <exception cref="T:System.ArgumentException">
          <paramref name="path" /> contains invalid characters; see
          <see cref="M:Mono.Unix.UnixPath.GetInvalidPathChars" />.
        </exception>
        <remarks>
          <para>The <paramref name="path" /> argument is permitted to specify 
          relative or absolute path information. Relative path information is 
          interpreted as relative to the current working directory. 
          <block subset="none" type="note">To obtain the current working 
          directory, see 
          <see cref="M:.Mono.Unix.UnixDirectoryInfo.GetCurrentDirectory" />.
          </block></para>
          <para>It is valid to construct 
          <see cref="T:Mono.Unix.UnixFileInfo" /> objects for files
          that do not exist or for directories.  However, attempts to use
          the <see cref="T:Mono.Unix.UnixFileInfo" /> instance may
          generate <see cref="T:System.InvalidOperationException" />s.
          Use <see cref="P:Mono.Unix.UnixFileSystemInfo.Exists" /> to see if
          <paramref name="path" /> exists and 
          <see cref="P:Mono.Unix.UnixFileSystemInfo.IsFile" /> to ensure
          that <paramref name="path" /> is a file.</para>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="Create">
      <MemberSignature Language="C#" Value="public Mono.Unix.UnixStream Create ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Mono.Unix.UnixStream</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Creates or overwrites <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.</summary>
        <exception cref="T:System.InvalidOperationException">
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is a special
            file mounted through a file system that does not support access to
            it (e.g. NFS).
            [<see cref="F:Mono.Unix.Native.Errno.EOPNOTSUPP" />]
          </para>
          <para>-or-</para>
          <para>An attempt was made to open a socket.
            [<see cref="F:Mono.Unix.Native.Errno.EOPNOTSUPP" />]
          </para>
        </exception>
        <exception cref="T:System.UnauthorizedAccessException">
          <para>Search permission is denied for a component of the path
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.
            [<see cref="F:Mono.Unix.Native.Errno.EACCESS" />]
          </para>
          <para>-or-</para>
          <para>The required permissions (for reading and/or writing)
          are denied for the given flags.
            [<see cref="F:Mono.Unix.Native.Errno.EACCESS" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> does not
          exist, and <see cref="P:Mono.Unix.UnixFileInfo.Directory" /> does not
          permit writing.
            [<see cref="F:Mono.Unix.Native.Errno.EACCESS" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is a
          directory.
            [<see cref="F:Mono.Unix.Native.Errno.EISDIR" />]
          </para>
        </exception>
        <exception cref="T:System.IO.DirectoryNotFoundException">
          A component of the path prefix of 
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is not a
          directory.
            [<see cref="F:Mono.Unix.Native.Errno.ENOTDIR" />]
        </exception>
        <exception cref="T:System.IO.FileNotFoundException">
          A component of <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> 
          that must exist does not exist.
            [<see cref="F:Mono.Unix.Native.Errno.ENOENT" />]
        </exception>
        <exception cref="T:System.IO.IOException">
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> resides on a
          read-only file system.
            [<see cref="F:Mono.Unix.Native.Errno.EROFS" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is a
          character device or block device, and the device associated with
          this file does not exist.
            [<see cref="F:Mono.Unix.Native.Errno.ENXIO" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is a
          fifo, no process has it open for reading, and the arguments specify
          it is to be opened for writing.
            [<see cref="F:Mono.Unix.Native.Errno.ENXIO" />]
          </para>
          <para>-or-</para>
          <para>The directory <see cref="P:Mono.Unix.UnixFileInfo.Directory" /> 
          cannot be extended because there is no space left on the file
          system containing the directory.
            [<see cref="F:Mono.Unix.Native.Errno.ENOSPC" />]
          </para>
          <para>-or-</para>
          <para>There are no free inodes on the file system on which the file
          is being created.
            [<see cref="F:Mono.Unix.Native.Errno.ENOSPC" />]
          </para>
          <para>-or-</para>
          <para>An I/O error occurred while making the directory entry or
          allocating the inode.
            [<see cref="F:Mono.Unix.Native.Errno.EIO" />]
          </para>
        </exception>
        <exception cref="T:System.IO.PathTooLongException">
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> was too long.
            [<see cref="F:Mono.Unix.Native.Errno.ENAMETOOLONG" />]
        </exception>
        <exception cref="T:Mono.Unix.UnixIOException">
          <para>Too many symbolic links were encountered in translating 
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.
            [<see cref="F:Mono.Unix.Native.Errno.ELOOP" />]
          </para>
          <para>-or-</para>
          <para>The process has already reached its limit for open file
          descriptors.
            [<see cref="F:Mono.Unix.Native.Errno.EMFILE" />]
          </para>
          <para>-or-</para>
          <para>The system file table is full.
            [<see cref="F:Mono.Unix.Native.Errno.ENFILE" />]
          </para>
          <para>-or-</para>
          <para>The user's quota of inodes on the file system containing
          <see cref="P:Mono.Unix.UnixFileInfo.Directory" /> has been exhausted.
            [<see cref="F:Mono.Unix.Native.Errno.EDQUOT" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileInfo.Directory" /> cannot be
          extended because the user's quota of disk blocks on the file system
          containing this directory has been exhausted.
            [<see cref="F:Mono.Unix.Native.Errno.EDQUOT" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is a
          pure procedure (shared text) file that is being executed and 
          <see cref="M:Mono.Unix.Native.Syscall.open" /> requests write
          access.
            [<see cref="F:Mono.Unix.Native.Errno.ETXTBSY" />]
          </para>
        </exception>
        <returns>A <see cref="T:Mono.Unix.UnixStream" /> that provides
        write access to <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.</returns>
        <remarks>
          <para>If 
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> does not exist,
          it is created; if it does exist and it is not read-only, the contents
          are overwritten.</para>
          <para>
            This method is equivalent to <c>
              <see cref="M:Mono.Unix.UnixFileInfo.Create(Mono.Unix.Native.FilePermissions)" qualify="false" />(
              <see cref="F:Mono.Unix.Native.FilePermissions.S_IRUSR" /> |
              <see cref="F:Mono.Unix.Native.FilePermissions.S_IWUSR" /> |
              <see cref="F:Mono.Unix.Native.FilePermissions.S_IRGRP" /> |
              <see cref="F:Mono.Unix.Native.FilePermissions.S_IROTH" />
            )</c> (the 0644 permission).
          </para>
        </remarks>
        <altmember cref="M:Mono.Unix.Native.Syscall.creat" />
      </Docs>
    </Member>
    <Member MemberName="Create">
      <MemberSignature Language="C#" Value="public Mono.Unix.UnixStream Create (Mono.Unix.Native.FilePermissions mode);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Mono.Unix.UnixStream</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="mode" Type="Mono.Unix.Native.FilePermissions" />
      </Parameters>
      <Docs>
        <param name="mode">A 
        <see cref="T:Mono.Unix.Native.FilePermissions" /> instance containing
        the file permissions the created file should have.</param>
        <summary>Creates or overwrites <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> with the specified
        file permissions.</summary>
        <exception cref="T:System.InvalidOperationException">
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is a special
            file mounted through a file system that does not support access to
            it (e.g. NFS).
            [<see cref="F:Mono.Unix.Native.Errno.EOPNOTSUPP" />]
          </para>
          <para>-or-</para>
          <para>An attempt was made to open a socket.
            [<see cref="F:Mono.Unix.Native.Errno.EOPNOTSUPP" />]
          </para>
        </exception>
        <exception cref="T:System.UnauthorizedAccessException">
          <para>Search permission is denied for a component of the path
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.
            [<see cref="F:Mono.Unix.Native.Errno.EACCESS" />]
          </para>
          <para>-or-</para>
          <para>The required permissions (for reading and/or writing)
          are denied for the given flags.
            [<see cref="F:Mono.Unix.Native.Errno.EACCESS" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> does not
          exist, and <see cref="P:Mono.Unix.UnixFileInfo.Directory" /> does not
          permit writing.
            [<see cref="F:Mono.Unix.Native.Errno.EACCESS" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is a
          directory.
            [<see cref="F:Mono.Unix.Native.Errno.EISDIR" />]
          </para>
        </exception>
        <exception cref="T:System.IO.DirectoryNotFoundException">
          A component of the path prefix of 
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is not a
          directory.
            [<see cref="F:Mono.Unix.Native.Errno.ENOTDIR" />]
        </exception>
        <exception cref="T:System.IO.FileNotFoundException">
          A component of <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> 
          that must exist does not exist.
            [<see cref="F:Mono.Unix.Native.Errno.ENOENT" />]
        </exception>
        <exception cref="T:System.IO.IOException">
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> resides on a
          read-only file system.
            [<see cref="F:Mono.Unix.Native.Errno.EROFS" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is a
          character device or block device, and the device associated with
          this file does not exist.
            [<see cref="F:Mono.Unix.Native.Errno.ENXIO" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is a
          fifo, no process has it open for reading, and the arguments specify
          it is to be opened for writing.
            [<see cref="F:Mono.Unix.Native.Errno.ENXIO" />]
          </para>
          <para>-or-</para>
          <para>The directory <see cref="P:Mono.Unix.UnixFileInfo.Directory" /> 
          cannot be extended because there is no space left on the file
          system containing the directory.
            [<see cref="F:Mono.Unix.Native.Errno.ENOSPC" />]
          </para>
          <para>-or-</para>
          <para>There are no free inodes on the file system on which the file
          is being created.
            [<see cref="F:Mono.Unix.Native.Errno.ENOSPC" />]
          </para>
          <para>-or-</para>
          <para>An I/O error occurred while making the directory entry or
          allocating the inode.
            [<see cref="F:Mono.Unix.Native.Errno.EIO" />]
          </para>
        </exception>
        <exception cref="T:System.IO.PathTooLongException">
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> was too long.
            [<see cref="F:Mono.Unix.Native.Errno.ENAMETOOLONG" />]
        </exception>
        <exception cref="T:Mono.Unix.UnixIOException">
          <para>Too many symbolic links were encountered in translating 
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.
            [<see cref="F:Mono.Unix.Native.Errno.ELOOP" />]
          </para>
          <para>-or-</para>
          <para>The process has already reached its limit for open file
          descriptors.
            [<see cref="F:Mono.Unix.Native.Errno.EMFILE" />]
          </para>
          <para>-or-</para>
          <para>The system file table is full.
            [<see cref="F:Mono.Unix.Native.Errno.ENFILE" />]
          </para>
          <para>-or-</para>
          <para>The user's quota of inodes on the file system containing
          <see cref="P:Mono.Unix.UnixFileInfo.Directory" /> has been exhausted.
            [<see cref="F:Mono.Unix.Native.Errno.EDQUOT" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileInfo.Directory" /> cannot be
          extended because the user's quota of disk blocks on the file system
          containing this directory has been exhausted.
            [<see cref="F:Mono.Unix.Native.Errno.EDQUOT" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is a
          pure procedure (shared text) file that is being executed and 
          <see cref="M:Mono.Unix.Native.Syscall.open" /> requests write
          access.
            [<see cref="F:Mono.Unix.Native.Errno.ETXTBSY" />]
          </para>
        </exception>
        <returns>A <see cref="T:Mono.Unix.UnixStream" /> that provides
        write access to <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.</returns>
        <remarks>
          <para>If 
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> does not exist,
          it is created; if it does exist and it is not read-only, the contents
          are overwritten.</para>
        </remarks>
        <altmember cref="M:Mono.Unix.Native.Syscall.creat" />
      </Docs>
    </Member>
    <Member MemberName="Create">
      <MemberSignature Language="C#" Value="public Mono.Unix.UnixStream Create (Mono.Unix.FileAccessPermissions mode);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Mono.Unix.UnixStream</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="mode" Type="Mono.Unix.FileAccessPermissions" />
      </Parameters>
      <Docs>
        <param name="mode">A 
          <see cref="T:Mono.Unix.FileAccessPermissions" /> instance containing
          the file permissions the created file should have.</param>
        <summary>Creates or overwrites <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> with the specified
          file permissions.</summary>
        <exception cref="T:System.InvalidOperationException">
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is a special
            file mounted through a file system that does not support access to
            it (e.g. NFS).
            [<see cref="F:Mono.Unix.Native.Errno.EOPNOTSUPP" />]
          </para>
          <para>-or-</para>
          <para>An attempt was made to open a socket.
            [<see cref="F:Mono.Unix.Native.Errno.EOPNOTSUPP" />]
          </para>
        </exception>
        <exception cref="T:System.UnauthorizedAccessException">
          <para>Search permission is denied for a component of the path
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.
            [<see cref="F:Mono.Unix.Native.Errno.EACCESS" />]
          </para>
          <para>-or-</para>
          <para>The required permissions (for reading and/or writing)
          are denied for the given flags.
            [<see cref="F:Mono.Unix.Native.Errno.EACCESS" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> does not
          exist, and <see cref="P:Mono.Unix.UnixFileInfo.Directory" /> does not
          permit writing.
            [<see cref="F:Mono.Unix.Native.Errno.EACCESS" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is a
          directory.
            [<see cref="F:Mono.Unix.Native.Errno.EISDIR" />]
          </para>
        </exception>
        <exception cref="T:System.IO.DirectoryNotFoundException">
          A component of the path prefix of 
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is not a
          directory.
            [<see cref="F:Mono.Unix.Native.Errno.ENOTDIR" />]
        </exception>
        <exception cref="T:System.IO.FileNotFoundException">
          A component of <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> 
          that must exist does not exist.
            [<see cref="F:Mono.Unix.Native.Errno.ENOENT" />]
        </exception>
        <exception cref="T:System.IO.IOException">
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> resides on a
          read-only file system.
            [<see cref="F:Mono.Unix.Native.Errno.EROFS" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is a
          character device or block device, and the device associated with
          this file does not exist.
            [<see cref="F:Mono.Unix.Native.Errno.ENXIO" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is a
          fifo, no process has it open for reading, and the arguments specify
          it is to be opened for writing.
            [<see cref="F:Mono.Unix.Native.Errno.ENXIO" />]
          </para>
          <para>-or-</para>
          <para>The directory <see cref="P:Mono.Unix.UnixFileInfo.Directory" /> 
          cannot be extended because there is no space left on the file
          system containing the directory.
            [<see cref="F:Mono.Unix.Native.Errno.ENOSPC" />]
          </para>
          <para>-or-</para>
          <para>There are no free inodes on the file system on which the file
          is being created.
            [<see cref="F:Mono.Unix.Native.Errno.ENOSPC" />]
          </para>
          <para>-or-</para>
          <para>An I/O error occurred while making the directory entry or
          allocating the inode.
            [<see cref="F:Mono.Unix.Native.Errno.EIO" />]
          </para>
        </exception>
        <exception cref="T:System.IO.PathTooLongException">
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> was too long.
            [<see cref="F:Mono.Unix.Native.Errno.ENAMETOOLONG" />]
        </exception>
        <exception cref="T:Mono.Unix.UnixIOException">
          <para>Too many symbolic links were encountered in translating 
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.
            [<see cref="F:Mono.Unix.Native.Errno.ELOOP" />]
          </para>
          <para>-or-</para>
          <para>The process has already reached its limit for open file
          descriptors.
            [<see cref="F:Mono.Unix.Native.Errno.EMFILE" />]
          </para>
          <para>-or-</para>
          <para>The system file table is full.
            [<see cref="F:Mono.Unix.Native.Errno.ENFILE" />]
          </para>
          <para>-or-</para>
          <para>The user's quota of inodes on the file system containing
          <see cref="P:Mono.Unix.UnixFileInfo.Directory" /> has been exhausted.
            [<see cref="F:Mono.Unix.Native.Errno.EDQUOT" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileInfo.Directory" /> cannot be
          extended because the user's quota of disk blocks on the file system
          containing this directory has been exhausted.
            [<see cref="F:Mono.Unix.Native.Errno.EDQUOT" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is a
          pure procedure (shared text) file that is being executed and 
          <see cref="M:Mono.Unix.Native.Syscall.open" /> requests write
          access.
            [<see cref="F:Mono.Unix.Native.Errno.ETXTBSY" />]
          </para>
        </exception>
        <returns>A <see cref="T:Mono.Unix.UnixStream" /> that provides
        write access to <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.</returns>
        <remarks>
          <para>If 
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> does not exist,
          it is created; if it does exist and it is not read-only, the contents
          are overwritten.</para>
        </remarks>
        <altmember cref="M:Mono.Unix.Native.Syscall.creat" />
      </Docs>
    </Member>
    <Member MemberName="Open">
      <MemberSignature Language="C#" Value="public Mono.Unix.UnixStream Open (Mono.Unix.Native.OpenFlags flags);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Mono.Unix.UnixStream</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="flags" Type="Mono.Unix.Native.OpenFlags" />
      </Parameters>
      <Docs>
        <param name="flags">A <see cref="T:Mono.Unix.Native.OpenFlags" /> value
        which controls how 
        <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is opened
        (read/write/append/etc.).</param>
        <summary>Opens <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> with the specified
        access <paramref name="flags" /> (read/write/etc.).</summary>
        <exception cref="T:System.ArgumentException">
          <para>An attempt was made to open a descriptor with an illegal combination
          of
          <see cref="F:Mono.Unix.Native.OpenFlags.O_RDONLY" />,
          <see cref="F:Mono.Unix.Native.OpenFlags.O_WRONLY" />, and
          <see cref="F:Mono.Unix.Native.OpenFlags.O_RDWR" />.
            [<see cref="F:Mono.Unix.Native.Errno.EINVAL" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="F:Mono.Unix.Native.OpenFlags.O_CREAT" /> was
          specified in <paramref name="flags" />.  
          <see cref="F:Mono.Unix.Native.OpenFlags.O_CREAT" /> requires a file
          mode for file creation; use 
          <see cref="M:Mono.Unix.UnixFileInfo.Open(Mono.Unix.Native.OpenFlags,Mono.Unix.Native.FilePermissions" qualify="true" />
          instead.</para>
        </exception>
        <exception cref="T:System.InvalidOperationException">
          <para>
            <see cref="F:Mono.Unix.Native.OpenFlags.O_SHLOCK" /> or
            <see cref="F:Mono.Unix.Native.OpenFlags.O_EXLOCK" /> is specified
            but the underlying file system does not support locking.
            [<see cref="F:Mono.Unix.Native.Errno.EOPNOTSUPP" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is a special
            file mounted through a file system that does not support access to
            it (e.g. NFS).
            [<see cref="F:Mono.Unix.Native.Errno.EOPNOTSUPP" />]
          </para>
          <para>-or-</para>
          <para>An attempt was made to open a socket.</para>
        </exception>
        <exception cref="T:System.UnauthorizedAccessException">
          <para>Search permission is denied for a component of the path
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.
            [<see cref="F:Mono.Unix.Native.Errno.EACCESS" />]
          </para>
          <para>-or-</para>
          <para>The required permissions (for reading and/or writing)
          are denied for the given flags.
            [<see cref="F:Mono.Unix.Native.Errno.EACCESS" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> does not
          exist, and <see cref="P:Mono.Unix.UnixFileInfo.Directory" /> does not
          permit writing.
            [<see cref="F:Mono.Unix.Native.Errno.EACCESS" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is a
          directory.
            [<see cref="F:Mono.Unix.Native.Errno.EISDIR" />]
          </para>
        </exception>
        <exception cref="T:System.IO.DirectoryNotFoundException">
          A component of the path prefix of 
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is not a
          directory.
            [<see cref="F:Mono.Unix.Native.Errno.ENOTDIR" />]
        </exception>
        <exception cref="T:System.IO.FileNotFoundException">
          <para>A component of <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> 
          that must exist does not exist.
            [<see cref="F:Mono.Unix.Native.Errno.ENOENT" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> does not exist
          and <see cref="F:Mono.Unix.Native.OpenFlags.O_CREAT" /> is not
          set.
            [<see cref="F:Mono.Unix.Native.Errno.ENOENT" />]
          </para>
        </exception>
        <exception cref="T:System.IO.IOException">
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> resides on a
          read-only file system.
            [<see cref="F:Mono.Unix.Native.Errno.EROFS" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is a
          character device or block device, and the device associated with
          this file does not exist.
            [<see cref="F:Mono.Unix.Native.Errno.ENXIO" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is a
          fifo, no process has it open for reading, and the arguments specify
          it is to be opened for writing.
            [<see cref="F:Mono.Unix.Native.Errno.ENXIO" />]
          </para>
          <para>-or-</para>
          <para>The directory <see cref="P:Mono.Unix.UnixFileInfo.Directory" /> 
          cannot be extended because there is no space left on the file
          system containing the directory.
            [<see cref="F:Mono.Unix.Native.Errno.ENOSPC" />]
          </para>
          <para>-or-</para>
          <para>There are no free inodes on the file system on which the file
          is being created.
            [<see cref="F:Mono.Unix.Native.Errno.ENOSPC" />]
          </para>
          <para>-or-</para>
          <para>An I/O error occurred while making the directory entry or
          allocating the inode.
            [<see cref="F:Mono.Unix.Native.Errno.EIO" />]
          </para>
        </exception>
        <exception cref="T:System.IO.PathTooLongException">
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> was too long.
            [<see cref="F:Mono.Unix.Native.Errno.ENAMETOOLONG" />]
        </exception>
        <exception cref="T:Mono.Unix.UnixIOException">
          <para>Too many symbolic links were encountered in translating 
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.
            [<see cref="F:Mono.Unix.Native.Errno.ELOOP" />]
          </para>
          <para>-or-</para>
          <para>The process has already reached its limit for open file
          descriptors.
            [<see cref="F:Mono.Unix.Native.Errno.EMFILE" />]
          </para>
          <para>-or-</para>
          <para>The system file table is full.
            [<see cref="F:Mono.Unix.Native.Errno.ENFILE" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="F:Mono.Unix.Native.OpenFlags.O_NOFOLLOW" /> was
          specified and the target is a symbolic link.
            [<see cref="F:Mono.Unix.Native.Errno.EMLINK" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="F:Mono.Unix.Native.OpenFlags.O_NONBLOCK" /> and one of
            <see cref="F:Mono.Unix.Native.OpenFlags.O_SHLOCK" /> or
            <see cref="F:Mono.Unix.Native.OpenFlags.O_EXLOCK" /> is specified
            and the file is locked.
            [<see cref="F:Mono.Unix.Native.Errno.EWOULDBLOCK" />]
          </para>
          <para>-or-</para>
          <para>The user's quota of inodes on the file system containing
          <see cref="P:Mono.Unix.UnixFileInfo.Directory" /> has been exhausted.
            [<see cref="F:Mono.Unix.Native.Errno.EDQUOT" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileInfo.Directory" /> cannot be
          extended because the user's quota of disk blocks on the file system
          containing this directory has been exhausted.
            [<see cref="F:Mono.Unix.Native.Errno.EDQUOT" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is a
          pure procedure (shared text) file that is being executed and 
          <see cref="M:Mono.Unix.Native.Syscall.open" /> requests write
          access.
            [<see cref="F:Mono.Unix.Native.Errno.ETXTBSY" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="F:Mono.Unix.Native.OpenFlags.O_CREAT" /> and
            <see cref="F:Mono.Unix.Native.OpenFlags.O_EXCL" /> were specified
            and 
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />
            exists.
            [<see cref="F:Mono.Unix.Native.Errno.EEXIST" />]
          </para>
        </exception>
        <returns>A <see cref="T:Mono.Unix.UnixStream" /> that provides
        access to <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.</returns>
        <remarks>
        </remarks>
        <altmember cref="T:Mono.Unix.Native.Syscall.open(System.String,Mono.Unix.Native.OpenFlags)" />
      </Docs>
    </Member>
    <Member MemberName="Open">
      <MemberSignature Language="C#" Value="public Mono.Unix.UnixStream Open (Mono.Unix.Native.OpenFlags flags, Mono.Unix.Native.FilePermissions mode);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Mono.Unix.UnixStream</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="flags" Type="Mono.Unix.Native.OpenFlags" />
        <Parameter Name="mode" Type="Mono.Unix.Native.FilePermissions" />
      </Parameters>
      <Docs>
        <param name="flags">A <see cref="T:Mono.Unix.Native.OpenFlags" /> value
        which controls how 
        <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is opened
        (read/write/append/etc.).</param>
        <param name="mode">A 
        <see cref="T:Mono.Unix.Native.FilePermissions" /> instance containing
        the file permissions the created file should have.</param>
        <summary>Opens <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> with the specified
        access <paramref name="flags" /> (read/write/etc.) and
        file permissions <paramref name="mode" />.</summary>
        <exception cref="T:System.ArgumentException">
          <para>An attempt was made to open a descriptor with an illegal combination
          of
          <see cref="F:Mono.Unix.Native.OpenFlags.O_RDONLY" />,
          <see cref="F:Mono.Unix.Native.OpenFlags.O_WRONLY" />, and
          <see cref="F:Mono.Unix.Native.OpenFlags.O_RDWR" />.
            [<see cref="F:Mono.Unix.Native.Errno.EINVAL" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="F:Mono.Unix.Native.OpenFlags.O_CREAT" /> was
          specified in <paramref name="flags" />.  
          <see cref="F:Mono.Unix.Native.OpenFlags.O_CREAT" /> requires a file
          mode for file creation; use 
          <see cref="M:Mono.Unix.UnixFileInfo.Open(Mono.Unix.Native.OpenFlags,Mono.Unix.Native.FilePermissions" qualify="true" />
          instead.</para>
        </exception>
        <exception cref="T:System.InvalidOperationException">
          <para>
            <see cref="F:Mono.Unix.Native.OpenFlags.O_SHLOCK" /> or
            <see cref="F:Mono.Unix.Native.OpenFlags.O_EXLOCK" /> is specified
            but the underlying file system does not support locking.
            [<see cref="F:Mono.Unix.Native.Errno.EOPNOTSUPP" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is a special
            file mounted through a file system that does not support access to
            it (e.g. NFS).
            [<see cref="F:Mono.Unix.Native.Errno.EOPNOTSUPP" />]
          </para>
          <para>-or-</para>
          <para>An attempt was made to open a socket.
            [<see cref="F:Mono.Unix.Native.Errno.EOPNOTSUPP" />]
          </para>
        </exception>
        <exception cref="T:System.UnauthorizedAccessException">
          <para>Search permission is denied for a component of the path
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.
            [<see cref="F:Mono.Unix.Native.Errno.EACCESS" />]
          </para>
          <para>-or-</para>
          <para>The required permissions (for reading and/or writing)
          are denied for the given flags.
            [<see cref="F:Mono.Unix.Native.Errno.EACCESS" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> does not
          exist, and <see cref="P:Mono.Unix.UnixFileInfo.Directory" /> does not
          permit writing.
            [<see cref="F:Mono.Unix.Native.Errno.EACCESS" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is a
          directory.
            [<see cref="F:Mono.Unix.Native.Errno.EISDIR" />]
          </para>
        </exception>
        <exception cref="T:System.IO.DirectoryNotFoundException">
          A component of the path prefix of 
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is not a
          directory.
            [<see cref="F:Mono.Unix.Native.Errno.ENOTDIR" />]
        </exception>
        <exception cref="T:System.IO.FileNotFoundException">
          <para>A component of <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> 
          that must exist does not exist.
            [<see cref="F:Mono.Unix.Native.Errno.ENOENT" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> does not exist
          and <see cref="F:Mono.Unix.Native.OpenFlags.O_CREAT" /> is not
          set.
            [<see cref="F:Mono.Unix.Native.Errno.ENOENT" />]
          </para>
        </exception>
        <exception cref="T:System.IO.IOException">
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> resides on a
          read-only file system.
            [<see cref="F:Mono.Unix.Native.Errno.EROFS" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is a
          character device or block device, and the device associated with
          this file does not exist.
            [<see cref="F:Mono.Unix.Native.Errno.ENXIO" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is a
          fifo, no process has it open for reading, and the arguments specify
          it is to be opened for writing.
            [<see cref="F:Mono.Unix.Native.Errno.ENXIO" />]
          </para>
          <para>-or-</para>
          <para>The directory <see cref="P:Mono.Unix.UnixFileInfo.Directory" /> 
          cannot be extended because there is no space left on the file
          system containing the directory.
            [<see cref="F:Mono.Unix.Native.Errno.ENOSPC" />]
          </para>
          <para>-or-</para>
          <para>There are no free inodes on the file system on which the file
          is being created.
            [<see cref="F:Mono.Unix.Native.Errno.ENOSPC" />]
          </para>
          <para>-or-</para>
          <para>An I/O error occurred while making the directory entry or
          allocating the inode.
            [<see cref="F:Mono.Unix.Native.Errno.EIO" />]
          </para>
        </exception>
        <exception cref="T:System.IO.PathTooLongException">
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> was too long.
            [<see cref="F:Mono.Unix.Native.Errno.ENAMETOOLONG" />]
        </exception>
        <exception cref="T:Mono.Unix.UnixIOException">
          <para>Too many symbolic links were encountered in translating 
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.
            [<see cref="F:Mono.Unix.Native.Errno.ELOOP" />]
          </para>
          <para>-or-</para>
          <para>The process has already reached its limit for open file
          descriptors.
            [<see cref="F:Mono.Unix.Native.Errno.EMFILE" />]
          </para>
          <para>-or-</para>
          <para>The system file table is full.
            [<see cref="F:Mono.Unix.Native.Errno.ENFILE" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="F:Mono.Unix.Native.OpenFlags.O_NOFOLLOW" /> was
          specified and the target is a symbolic link.
            [<see cref="F:Mono.Unix.Native.Errno.EMLINK" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="F:Mono.Unix.Native.OpenFlags.O_NONBLOCK" /> and one of
            <see cref="F:Mono.Unix.Native.OpenFlags.O_SHLOCK" /> or
            <see cref="F:Mono.Unix.Native.OpenFlags.O_EXLOCK" /> is specified
            and the file is locked.
            [<see cref="F:Mono.Unix.Native.Errno.EWOULDBLOCK" />]
          </para>
          <para>-or-</para>
          <para>The user's quota of inodes on the file system containing
          <see cref="P:Mono.Unix.UnixFileInfo.Directory" /> has been exhausted.
            [<see cref="F:Mono.Unix.Native.Errno.EDQUOT" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileInfo.Directory" /> cannot be
          extended because the user's quota of disk blocks on the file system
          containing this directory has been exhausted.
            [<see cref="F:Mono.Unix.Native.Errno.EDQUOT" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is a
          pure procedure (shared text) file that is being executed and 
          <see cref="M:Mono.Unix.Native.Syscall.open" /> requests write
          access.
            [<see cref="F:Mono.Unix.Native.Errno.ETXTBSY" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="F:Mono.Unix.Native.OpenFlags.O_CREAT" /> and
            <see cref="F:Mono.Unix.Native.OpenFlags.O_EXCL" /> were specified
            and 
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />
            exists.
            [<see cref="F:Mono.Unix.Native.Errno.EEXIST" />]
          </para>
        </exception>
        <returns>A <see cref="T:Mono.Unix.UnixStream" /> that provides
        access to <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.</returns>
        <remarks>
        </remarks>
        <altmember cref="T:Mono.Unix.Native.Syscall.open(System.String,Mono.Unix.Native.OpenFlags,Mono.Unix.Native.FilePermissions)" />
      </Docs>
    </Member>
    <Member MemberName="Open">
      <MemberSignature Language="C#" Value="public Mono.Unix.UnixStream Open (System.IO.FileMode mode, System.IO.FileAccess access, Mono.Unix.Native.FilePermissions perms);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Mono.Unix.UnixStream</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="mode" Type="System.IO.FileMode" />
        <Parameter Name="access" Type="System.IO.FileAccess" />
        <Parameter Name="perms" Type="Mono.Unix.Native.FilePermissions" />
      </Parameters>
      <Docs>
        <param name="mode">A <see cref="T:System.IO.FileMode" /> value that
        specifies whether a file is created if one does not exist, and
        dtermines whether the contents of existing files are retained or
        overwritten.</param>
        <param name="access">A <see cref="T:System.IO.FileAccess" /> value that
        specifies the operations that can be performed on the file.</param>
        <param name="perms">A 
        <see cref="T:Mono.Unix.Native.FilePermissions" /> instance containing
        the file permissions the created file should have.</param>
        <summary>Opens <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> 
        with the specified <paramref name="mode" /> and 
        <paramref name="access" /> with file permissions 
        <paramref name="perms" />.</summary>
        <exception cref="T:System.ArgumentException">
          <para>An attempt was made to open a descriptor with an illegal combination
          of
          <see cref="F:Mono.Unix.Native.OpenFlags.O_RDONLY" />,
          <see cref="F:Mono.Unix.Native.OpenFlags.O_WRONLY" />, and
          <see cref="F:Mono.Unix.Native.OpenFlags.O_RDWR" />.
            [<see cref="F:Mono.Unix.Native.Errno.EINVAL" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="F:Mono.Unix.Native.OpenFlags.O_CREAT" /> was
          specified in <paramref name="flags" />.  
          <see cref="F:Mono.Unix.Native.OpenFlags.O_CREAT" /> requires a file
          mode for file creation; use 
          <see cref="M:Mono.Unix.UnixFileInfo.Open(Mono.Unix.Native.OpenFlags,Mono.Unix.Native.FilePermissions" qualify="true" />
          instead.</para>
        </exception>
        <exception cref="T:System.InvalidOperationException">
          <para>
            <see cref="F:Mono.Unix.Native.OpenFlags.O_SHLOCK" /> or
            <see cref="F:Mono.Unix.Native.OpenFlags.O_EXLOCK" /> is specified
            but the underlying file system does not support locking.
            [<see cref="F:Mono.Unix.Native.Errno.EOPNOTSUPP" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is a special
            file mounted through a file system that does not support access to
            it (e.g. NFS).
            [<see cref="F:Mono.Unix.Native.Errno.EOPNOTSUPP" />]
          </para>
          <para>-or-</para>
          <para>An attempt was made to open a socket.
            [<see cref="F:Mono.Unix.Native.Errno.EOPNOTSUPP" />]
          </para>
        </exception>
        <exception cref="T:System.UnauthorizedAccessException">
          <para>Search permission is denied for a component of the path
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.
            [<see cref="F:Mono.Unix.Native.Errno.EACCESS" />]
          </para>
          <para>-or-</para>
          <para>The required permissions (for reading and/or writing)
          are denied for the given flags.
            [<see cref="F:Mono.Unix.Native.Errno.EACCESS" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> does not
          exist, and <see cref="P:Mono.Unix.UnixFileInfo.Directory" /> does not
          permit writing.
            [<see cref="F:Mono.Unix.Native.Errno.EACCESS" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is a
          directory.
            [<see cref="F:Mono.Unix.Native.Errno.EISDIR" />]
          </para>
        </exception>
        <exception cref="T:System.IO.DirectoryNotFoundException">
          A component of the path prefix of 
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is not a
          directory.
            [<see cref="F:Mono.Unix.Native.Errno.ENOTDIR" />]
        </exception>
        <exception cref="T:System.IO.FileNotFoundException">
          <para>A component of <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> 
          that must exist does not exist.
            [<see cref="F:Mono.Unix.Native.Errno.ENOENT" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> does not exist
          and <see cref="F:Mono.Unix.Native.OpenFlags.O_CREAT" /> is not
          set.
            [<see cref="F:Mono.Unix.Native.Errno.ENOENT" />]
          </para>
        </exception>
        <exception cref="T:System.IO.IOException">
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> resides on a
          read-only file system.
            [<see cref="F:Mono.Unix.Native.Errno.EROFS" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is a
          character device or block device, and the device associated with
          this file does not exist.
            [<see cref="F:Mono.Unix.Native.Errno.ENXIO" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is a
          fifo, no process has it open for reading, and the arguments specify
          it is to be opened for writing.
            [<see cref="F:Mono.Unix.Native.Errno.ENXIO" />]
          </para>
          <para>-or-</para>
          <para>The directory <see cref="P:Mono.Unix.UnixFileInfo.Directory" /> 
          cannot be extended because there is no space left on the file
          system containing the directory.
            [<see cref="F:Mono.Unix.Native.Errno.ENOSPC" />]
          </para>
          <para>-or-</para>
          <para>There are no free inodes on the file system on which the file
          is being created.
            [<see cref="F:Mono.Unix.Native.Errno.ENOSPC" />]
          </para>
          <para>-or-</para>
          <para>An I/O error occurred while making the directory entry or
          allocating the inode.
            [<see cref="F:Mono.Unix.Native.Errno.EIO" />]
          </para>
        </exception>
        <exception cref="T:System.IO.PathTooLongException">
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> was too long.
            [<see cref="F:Mono.Unix.Native.Errno.ENAMETOOLONG" />]
        </exception>
        <exception cref="T:Mono.Unix.UnixIOException">
          <para>Too many symbolic links were encountered in translating 
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.
            [<see cref="F:Mono.Unix.Native.Errno.ELOOP" />]
          </para>
          <para>-or-</para>
          <para>The process has already reached its limit for open file
          descriptors.
            [<see cref="F:Mono.Unix.Native.Errno.EMFILE" />]
          </para>
          <para>-or-</para>
          <para>The system file table is full.
            [<see cref="F:Mono.Unix.Native.Errno.ENFILE" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="F:Mono.Unix.Native.OpenFlags.O_NOFOLLOW" /> was
          specified and the target is a symbolic link.
            [<see cref="F:Mono.Unix.Native.Errno.EMLINK" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="F:Mono.Unix.Native.OpenFlags.O_NONBLOCK" /> and one of
            <see cref="F:Mono.Unix.Native.OpenFlags.O_SHLOCK" /> or
            <see cref="F:Mono.Unix.Native.OpenFlags.O_EXLOCK" /> is specified
            and the file is locked.
            [<see cref="F:Mono.Unix.Native.Errno.EWOULDBLOCK" />]
          </para>
          <para>-or-</para>
          <para>The user's quota of inodes on the file system containing
          <see cref="P:Mono.Unix.UnixFileInfo.Directory" /> has been exhausted.
            [<see cref="F:Mono.Unix.Native.Errno.EDQUOT" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileInfo.Directory" /> cannot be
          extended because the user's quota of disk blocks on the file system
          containing this directory has been exhausted.
            [<see cref="F:Mono.Unix.Native.Errno.EDQUOT" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is a
          pure procedure (shared text) file that is being executed and 
          <see cref="M:Mono.Unix.Native.Syscall.open" /> requests write
          access.
            [<see cref="F:Mono.Unix.Native.Errno.ETXTBSY" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="F:Mono.Unix.Native.OpenFlags.O_CREAT" /> and
            <see cref="F:Mono.Unix.Native.OpenFlags.O_EXCL" /> were specified
            and 
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />
            exists.
            [<see cref="F:Mono.Unix.Native.Errno.EEXIST" />]
          </para>
        </exception>
        <returns>A <see cref="T:Mono.Unix.UnixStream" /> that provides
        access to <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.</returns>
        <remarks>
          <para>This is equivalent to <c>
              <see cref="M:Mono.Unix.UnixFileInfo.Open(Mono.Unix.Native.OpenFlags,Mono.Unix.Native.FilePermissions)" qualify="false" />
            (<see cref="M:Mono.Unix.Native.NativeConvert.ToOpenFlags(System.IO.FileMode,System.IO.FileAccess)" qualify="false" /> (<paramref name="mode" />, 
            <paramref name="access" />), <paramref name="perms" />)</c>.
          </para>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="Open">
      <MemberSignature Language="C#" Value="public Mono.Unix.UnixStream Open (System.IO.FileMode mode);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Mono.Unix.UnixStream</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="mode" Type="System.IO.FileMode" />
      </Parameters>
      <Docs>
        <param name="mode">A <see cref="T:System.IO.FileMode" /> value that
        specifies whether a file is created if one does not exist, and
        determines whether the contents of existing files are retained or
        overwritten.</param>
        <summary>Opens <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> with the specified
        access <paramref name="mode" /> (read/write/etc.).</summary>
        <exception cref="T:System.ArgumentException">
          <para>An attempt was made to open a descriptor with an illegal combination
          of
          <see cref="F:Mono.Unix.Native.OpenFlags.O_RDONLY" />,
          <see cref="F:Mono.Unix.Native.OpenFlags.O_WRONLY" />, and
          <see cref="F:Mono.Unix.Native.OpenFlags.O_RDWR" />.
            [<see cref="F:Mono.Unix.Native.Errno.EINVAL" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="F:Mono.Unix.Native.OpenFlags.O_CREAT" /> was
          specified in <paramref name="flags" />.  
          <see cref="F:Mono.Unix.Native.OpenFlags.O_CREAT" /> requires a file
          mode for file creation; use 
          <see cref="M:Mono.Unix.UnixFileInfo.Open(Mono.Unix.Native.OpenFlags,Mono.Unix.Native.FilePermissions" qualify="true" />
          instead.</para>
        </exception>
        <exception cref="T:System.InvalidOperationException">
          <para>
            <see cref="F:Mono.Unix.Native.OpenFlags.O_SHLOCK" /> or
            <see cref="F:Mono.Unix.Native.OpenFlags.O_EXLOCK" /> is specified
            but the underlying file system does not support locking.
            [<see cref="F:Mono.Unix.Native.Errno.EOPNOTSUPP" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is a special
            file mounted through a file system that does not support access to
            it (e.g. NFS).
            [<see cref="F:Mono.Unix.Native.Errno.EOPNOTSUPP" />]
          </para>
          <para>-or-</para>
          <para>An attempt was made to open a socket.
            [<see cref="F:Mono.Unix.Native.Errno.EOPNOTSUPP" />]
          </para>
        </exception>
        <exception cref="T:System.UnauthorizedAccessException">
          <para>Search permission is denied for a component of the path
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.
            [<see cref="F:Mono.Unix.Native.Errno.EACCESS" />]
          </para>
          <para>-or-</para>
          <para>The required permissions (for reading and/or writing)
          are denied for the given flags.
            [<see cref="F:Mono.Unix.Native.Errno.EACCESS" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> does not
          exist, and <see cref="P:Mono.Unix.UnixFileInfo.Directory" /> does not
          permit writing.
            [<see cref="F:Mono.Unix.Native.Errno.EACCESS" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is a
          directory.
            [<see cref="F:Mono.Unix.Native.Errno.EISDIR" />]
          </para>
        </exception>
        <exception cref="T:System.IO.DirectoryNotFoundException">
          A component of the path prefix of 
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is not a
          directory.
            [<see cref="F:Mono.Unix.Native.Errno.ENOTDIR" />]
        </exception>
        <exception cref="T:System.IO.FileNotFoundException">
          <para>A component of <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> 
          that must exist does not exist.
            [<see cref="F:Mono.Unix.Native.Errno.ENOENT" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> does not exist
          and <see cref="F:Mono.Unix.Native.OpenFlags.O_CREAT" /> is not
          set.
            [<see cref="F:Mono.Unix.Native.Errno.ENOENT" />]
          </para>
        </exception>
        <exception cref="T:System.IO.IOException">
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> resides on a
          read-only file system.
            [<see cref="F:Mono.Unix.Native.Errno.EROFS" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is a
          character device or block device, and the device associated with
          this file does not exist.
            [<see cref="F:Mono.Unix.Native.Errno.ENXIO" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is a
          fifo, no process has it open for reading, and the arguments specify
          it is to be opened for writing.
            [<see cref="F:Mono.Unix.Native.Errno.ENXIO" />]
          </para>
          <para>-or-</para>
          <para>The directory <see cref="P:Mono.Unix.UnixFileInfo.Directory" /> 
          cannot be extended because there is no space left on the file
          system containing the directory.
            [<see cref="F:Mono.Unix.Native.Errno.ENOSPC" />]
          </para>
          <para>-or-</para>
          <para>There are no free inodes on the file system on which the file
          is being created.
            [<see cref="F:Mono.Unix.Native.Errno.ENOSPC" />]
          </para>
          <para>-or-</para>
          <para>An I/O error occurred while making the directory entry or
          allocating the inode.
            [<see cref="F:Mono.Unix.Native.Errno.EIO" />]
          </para>
        </exception>
        <exception cref="T:System.IO.PathTooLongException">
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> was too long.
            [<see cref="F:Mono.Unix.Native.Errno.ENAMETOOLONG" />]
        </exception>
        <exception cref="T:Mono.Unix.UnixIOException">
          <para>Too many symbolic links were encountered in translating 
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.
            [<see cref="F:Mono.Unix.Native.Errno.ELOOP" />]
          </para>
          <para>-or-</para>
          <para>The process has already reached its limit for open file
          descriptors.
            [<see cref="F:Mono.Unix.Native.Errno.EMFILE" />]
          </para>
          <para>-or-</para>
          <para>The system file table is full.
            [<see cref="F:Mono.Unix.Native.Errno.ENFILE" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="F:Mono.Unix.Native.OpenFlags.O_NOFOLLOW" /> was
          specified and the target is a symbolic link.
            [<see cref="F:Mono.Unix.Native.Errno.EMLINK" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="F:Mono.Unix.Native.OpenFlags.O_NONBLOCK" /> and one of
            <see cref="F:Mono.Unix.Native.OpenFlags.O_SHLOCK" /> or
            <see cref="F:Mono.Unix.Native.OpenFlags.O_EXLOCK" /> is specified
            and the file is locked.
            [<see cref="F:Mono.Unix.Native.Errno.EWOULDBLOCK" />]
          </para>
          <para>-or-</para>
          <para>The user's quota of inodes on the file system containing
          <see cref="P:Mono.Unix.UnixFileInfo.Directory" /> has been exhausted.
            [<see cref="F:Mono.Unix.Native.Errno.EDQUOT" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileInfo.Directory" /> cannot be
          extended because the user's quota of disk blocks on the file system
          containing this directory has been exhausted.
            [<see cref="F:Mono.Unix.Native.Errno.EDQUOT" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is a
          pure procedure (shared text) file that is being executed and 
          <see cref="M:Mono.Unix.Native.Syscall.open" /> requests write
          access.
            [<see cref="F:Mono.Unix.Native.Errno.ETXTBSY" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="F:Mono.Unix.Native.OpenFlags.O_CREAT" /> and
            <see cref="F:Mono.Unix.Native.OpenFlags.O_EXCL" /> were specified
            and 
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />
            exists.
            [<see cref="F:Mono.Unix.Native.Errno.EEXIST" />]
          </para>
        </exception>
        <returns>A <see cref="T:Mono.Unix.UnixStream" /> that provides
        access to <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.</returns>
        <remarks>
          <para>This is equivalent to <c>
              <see cref="M:Mono.Unix.UnixFileInfo.Open(Mono.Unix.Native.OpenFlags)" qualify="false" />
            (<see cref="M:Mono.Unix.Native.NativeConvert.ToOpenFlags(System.IO.FileMode)" qualify="false" /> (<paramref name="mode" />))</c>.
          </para>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="Open">
      <MemberSignature Language="C#" Value="public Mono.Unix.UnixStream Open (System.IO.FileMode mode, System.IO.FileAccess access);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Mono.Unix.UnixStream</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="mode" Type="System.IO.FileMode" />
        <Parameter Name="access" Type="System.IO.FileAccess" />
      </Parameters>
      <Docs>
        <param name="mode">A <see cref="T:System.IO.FileMode" /> value that
        specifies whether a file is created if one does not exist, and
        dtermines whether the contents of existing files are retained or
        overwritten.</param>
        <param name="access">A <see cref="T:System.IO.FileAccess" /> value that
        specifies the operations that can be performed on the file.</param>
        <summary>Opens <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> with the specified
        <paramref name="mode" /> and <paramref name="access" />.</summary>
        <exception cref="T:System.ArgumentException">
          <para>An attempt was made to open a descriptor with an illegal combination
          of
          <see cref="F:Mono.Unix.Native.OpenFlags.O_RDONLY" />,
          <see cref="F:Mono.Unix.Native.OpenFlags.O_WRONLY" />, and
          <see cref="F:Mono.Unix.Native.OpenFlags.O_RDWR" />.
            [<see cref="F:Mono.Unix.Native.Errno.EINVAL" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="F:Mono.Unix.Native.OpenFlags.O_CREAT" /> was
          specified in <paramref name="flags" />.  
          <see cref="F:Mono.Unix.Native.OpenFlags.O_CREAT" /> requires a file
          mode for file creation; use 
          <see cref="M:Mono.Unix.UnixFileInfo.Open(Mono.Unix.Native.OpenFlags,Mono.Unix.Native.FilePermissions" qualify="true" />
          instead.</para>
        </exception>
        <exception cref="T:System.InvalidOperationException">
          <para>
            <see cref="F:Mono.Unix.Native.OpenFlags.O_SHLOCK" /> or
            <see cref="F:Mono.Unix.Native.OpenFlags.O_EXLOCK" /> is specified
            but the underlying file system does not support locking.
            [<see cref="F:Mono.Unix.Native.Errno.EOPNOTSUPP" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is a special
            file mounted through a file system that does not support access to
            it (e.g. NFS).
            [<see cref="F:Mono.Unix.Native.Errno.EOPNOTSUPP" />]
          </para>
          <para>-or-</para>
          <para>An attempt was made to open a socket.
            [<see cref="F:Mono.Unix.Native.Errno.EOPNOTSUPP" />]
          </para>
        </exception>
        <exception cref="T:System.UnauthorizedAccessException">
          <para>Search permission is denied for a component of the path
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.
            [<see cref="F:Mono.Unix.Native.Errno.EACCESS" />]
          </para>
          <para>-or-</para>
          <para>The required permissions (for reading and/or writing)
          are denied for the given flags.
            [<see cref="F:Mono.Unix.Native.Errno.EACCESS" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> does not
          exist, and <see cref="P:Mono.Unix.UnixFileInfo.Directory" /> does not
          permit writing.
            [<see cref="F:Mono.Unix.Native.Errno.EACCESS" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is a
          directory.
            [<see cref="F:Mono.Unix.Native.Errno.EISDIR" />]
          </para>
        </exception>
        <exception cref="T:System.IO.DirectoryNotFoundException">
          A component of the path prefix of 
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is not a
          directory.
            [<see cref="F:Mono.Unix.Native.Errno.ENOTDIR" />]
        </exception>
        <exception cref="T:System.IO.FileNotFoundException">
          <para>A component of <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> 
          that must exist does not exist.
            [<see cref="F:Mono.Unix.Native.Errno.ENOENT" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> does not exist
          and <see cref="F:Mono.Unix.Native.OpenFlags.O_CREAT" /> is not
          set.
            [<see cref="F:Mono.Unix.Native.Errno.ENOENT" />]
          </para>
        </exception>
        <exception cref="T:System.IO.IOException">
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> resides on a
          read-only file system.
            [<see cref="F:Mono.Unix.Native.Errno.EROFS" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is a
          character device or block device, and the device associated with
          this file does not exist.
            [<see cref="F:Mono.Unix.Native.Errno.ENXIO" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is a
          fifo, no process has it open for reading, and the arguments specify
          it is to be opened for writing.
            [<see cref="F:Mono.Unix.Native.Errno.ENXIO" />]
          </para>
          <para>-or-</para>
          <para>The directory <see cref="P:Mono.Unix.UnixFileInfo.Directory" /> 
          cannot be extended because there is no space left on the file
          system containing the directory.
            [<see cref="F:Mono.Unix.Native.Errno.ENOSPC" />]
          </para>
          <para>-or-</para>
          <para>There are no free inodes on the file system on which the file
          is being created.
            [<see cref="F:Mono.Unix.Native.Errno.ENOSPC" />]
          </para>
          <para>-or-</para>
          <para>An I/O error occurred while making the directory entry or
          allocating the inode.
            [<see cref="F:Mono.Unix.Native.Errno.EIO" />]
          </para>
        </exception>
        <exception cref="T:System.IO.PathTooLongException">
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> was too long.
            [<see cref="F:Mono.Unix.Native.Errno.ENAMETOOLONG" />]
        </exception>
        <exception cref="T:Mono.Unix.UnixIOException">
          <para>Too many symbolic links were encountered in translating 
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.
            [<see cref="F:Mono.Unix.Native.Errno.ELOOP" />]
          </para>
          <para>-or-</para>
          <para>The process has already reached its limit for open file
          descriptors.
            [<see cref="F:Mono.Unix.Native.Errno.EMFILE" />]
          </para>
          <para>-or-</para>
          <para>The system file table is full.
            [<see cref="F:Mono.Unix.Native.Errno.ENFILE" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="F:Mono.Unix.Native.OpenFlags.O_NOFOLLOW" /> was
          specified and the target is a symbolic link.
            [<see cref="F:Mono.Unix.Native.Errno.EMLINK" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="F:Mono.Unix.Native.OpenFlags.O_NONBLOCK" /> and one of
            <see cref="F:Mono.Unix.Native.OpenFlags.O_SHLOCK" /> or
            <see cref="F:Mono.Unix.Native.OpenFlags.O_EXLOCK" /> is specified
            and the file is locked.
            [<see cref="F:Mono.Unix.Native.Errno.EWOULDBLOCK" />]
          </para>
          <para>-or-</para>
          <para>The user's quota of inodes on the file system containing
          <see cref="P:Mono.Unix.UnixFileInfo.Directory" /> has been exhausted.
            [<see cref="F:Mono.Unix.Native.Errno.EDQUOT" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileInfo.Directory" /> cannot be
          extended because the user's quota of disk blocks on the file system
          containing this directory has been exhausted.
            [<see cref="F:Mono.Unix.Native.Errno.EDQUOT" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is a
          pure procedure (shared text) file that is being executed and 
          <see cref="M:Mono.Unix.Native.Syscall.open" /> requests write
          access.
            [<see cref="F:Mono.Unix.Native.Errno.ETXTBSY" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="F:Mono.Unix.Native.OpenFlags.O_CREAT" /> and
            <see cref="F:Mono.Unix.Native.OpenFlags.O_EXCL" /> were specified
            and 
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />
            exists.
            [<see cref="F:Mono.Unix.Native.Errno.EEXIST" />]
          </para>
        </exception>
        <returns>A <see cref="T:Mono.Unix.UnixStream" /> that provides
        access to <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.</returns>
        <remarks>
          <para>This is equivalent to <c>
              <see cref="M:Mono.Unix.UnixFileInfo.Open(Mono.Unix.Native.OpenFlags)" qualify="false" />
            (<see cref="M:Mono.Unix.Native.NativeConvert.ToOpenFlags(System.IO.FileMode,System.IO.FileAccess)" qualify="false" /> (<paramref name="mode" />, 
            <paramref name="access" />))</c>.
          </para>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="OpenRead">
      <MemberSignature Language="C#" Value="public Mono.Unix.UnixStream OpenRead ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Mono.Unix.UnixStream</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Opens <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> for
        reading.</summary>
        <exception cref="T:System.ArgumentException">
          <para>An attempt was made to open a descriptor with an illegal combination
          of
          <see cref="F:Mono.Unix.Native.OpenFlags.O_RDONLY" />,
          <see cref="F:Mono.Unix.Native.OpenFlags.O_WRONLY" />, and
          <see cref="F:Mono.Unix.Native.OpenFlags.O_RDWR" />.
            [<see cref="F:Mono.Unix.Native.Errno.EINVAL" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="F:Mono.Unix.Native.OpenFlags.O_CREAT" /> was
          specified in <paramref name="flags" />.  
          <see cref="F:Mono.Unix.Native.OpenFlags.O_CREAT" /> requires a file
          mode for file creation; use 
          <see cref="M:Mono.Unix.UnixFileInfo.Open(Mono.Unix.Native.OpenFlags,Mono.Unix.Native.FilePermissions" qualify="true" />
          instead.</para>
        </exception>
        <exception cref="T:System.InvalidOperationException">
          <para>
            <see cref="F:Mono.Unix.Native.OpenFlags.O_SHLOCK" /> or
            <see cref="F:Mono.Unix.Native.OpenFlags.O_EXLOCK" /> is specified
            but the underlying file system does not support locking.
            [<see cref="F:Mono.Unix.Native.Errno.EOPNOTSUPP" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is a special
            file mounted through a file system that does not support access to
            it (e.g. NFS).
            [<see cref="F:Mono.Unix.Native.Errno.EOPNOTSUPP" />]
          </para>
          <para>-or-</para>
          <para>An attempt was made to open a socket.
            [<see cref="F:Mono.Unix.Native.Errno.EOPNOTSUPP" />]
          </para>
        </exception>
        <exception cref="T:System.UnauthorizedAccessException">
          <para>Search permission is denied for a component of the path
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.
            [<see cref="F:Mono.Unix.Native.Errno.EACCESS" />]
          </para>
          <para>-or-</para>
          <para>The required permissions (for reading and/or writing)
          are denied for the given flags.
            [<see cref="F:Mono.Unix.Native.Errno.EACCESS" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> does not
          exist, and <see cref="P:Mono.Unix.UnixFileInfo.Directory" /> does not
          permit writing.
            [<see cref="F:Mono.Unix.Native.Errno.EACCESS" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is a
          directory.
            [<see cref="F:Mono.Unix.Native.Errno.EISDIR" />]
          </para>
        </exception>
        <exception cref="T:System.IO.DirectoryNotFoundException">
          A component of the path prefix of 
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is not a
          directory.
            [<see cref="F:Mono.Unix.Native.Errno.ENOTDIR" />]
        </exception>
        <exception cref="T:System.IO.FileNotFoundException">
          <para>A component of <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> 
          that must exist does not exist.
            [<see cref="F:Mono.Unix.Native.Errno.ENOENT" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> does not exist
          and <see cref="F:Mono.Unix.Native.OpenFlags.O_CREAT" /> is not
          set.
            [<see cref="F:Mono.Unix.Native.Errno.ENOENT" />]
          </para>
        </exception>
        <exception cref="T:System.IO.IOException">
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> resides on a
          read-only file system.
            [<see cref="F:Mono.Unix.Native.Errno.EROFS" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is a
          character device or block device, and the device associated with
          this file does not exist.
            [<see cref="F:Mono.Unix.Native.Errno.ENXIO" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is a
          fifo, no process has it open for reading, and the arguments specify
          it is to be opened for writing.
            [<see cref="F:Mono.Unix.Native.Errno.ENXIO" />]
          </para>
          <para>-or-</para>
          <para>The directory <see cref="P:Mono.Unix.UnixFileInfo.Directory" /> 
          cannot be extended because there is no space left on the file
          system containing the directory.
            [<see cref="F:Mono.Unix.Native.Errno.ENOSPC" />]
          </para>
          <para>-or-</para>
          <para>There are no free inodes on the file system on which the file
          is being created.
            [<see cref="F:Mono.Unix.Native.Errno.ENOSPC" />]
          </para>
          <para>-or-</para>
          <para>An I/O error occurred while making the directory entry or
          allocating the inode.
            [<see cref="F:Mono.Unix.Native.Errno.EIO" />]
          </para>
        </exception>
        <exception cref="T:System.IO.PathTooLongException">
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> was too long.
            [<see cref="F:Mono.Unix.Native.Errno.ENAMETOOLONG" />]
        </exception>
        <exception cref="T:Mono.Unix.UnixIOException">
          <para>Too many symbolic links were encountered in translating 
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.
            [<see cref="F:Mono.Unix.Native.Errno.ELOOP" />]
          </para>
          <para>-or-</para>
          <para>The process has already reached its limit for open file
          descriptors.
            [<see cref="F:Mono.Unix.Native.Errno.EMFILE" />]
          </para>
          <para>-or-</para>
          <para>The system file table is full.
            [<see cref="F:Mono.Unix.Native.Errno.ENFILE" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="F:Mono.Unix.Native.OpenFlags.O_NOFOLLOW" /> was
          specified and the target is a symbolic link.
            [<see cref="F:Mono.Unix.Native.Errno.EMLINK" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="F:Mono.Unix.Native.OpenFlags.O_NONBLOCK" /> and one of
            <see cref="F:Mono.Unix.Native.OpenFlags.O_SHLOCK" /> or
            <see cref="F:Mono.Unix.Native.OpenFlags.O_EXLOCK" /> is specified
            and the file is locked.
            [<see cref="F:Mono.Unix.Native.Errno.EWOULDBLOCK" />]
          </para>
          <para>-or-</para>
          <para>The user's quota of inodes on the file system containing
          <see cref="P:Mono.Unix.UnixFileInfo.Directory" /> has been exhausted.
            [<see cref="F:Mono.Unix.Native.Errno.EDQUOT" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileInfo.Directory" /> cannot be
          extended because the user's quota of disk blocks on the file system
          containing this directory has been exhausted.
            [<see cref="F:Mono.Unix.Native.Errno.EDQUOT" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is a
          pure procedure (shared text) file that is being executed and 
          <see cref="M:Mono.Unix.Native.Syscall.open" /> requests write
          access.
            [<see cref="F:Mono.Unix.Native.Errno.ETXTBSY" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="F:Mono.Unix.Native.OpenFlags.O_CREAT" /> and
            <see cref="F:Mono.Unix.Native.OpenFlags.O_EXCL" /> were specified
            and 
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />
            exists.
            [<see cref="F:Mono.Unix.Native.Errno.EEXIST" />]
          </para>
        </exception>
        <returns>A <see cref="T:Mono.Unix.UnixStream" /> that provides
        read access to <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.</returns>
        <remarks>
          <para>
            This is equivalent to <c>
              <see cref="M:Mono.Unix.UnixFileInfo.Open(System.IO.FileMode,System.IO.FileAccess" qualify="false" /> (<see cref="F:System.IO.FileMode.Open" />,
              <see cref="F:System.IO.FileAccess.Read" />)</c>.
          </para>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="OpenWrite">
      <MemberSignature Language="C#" Value="public Mono.Unix.UnixStream OpenWrite ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Mono.Unix.UnixStream</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Opens <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> for
        writing.</summary>
        <exception cref="T:System.ArgumentException">
          <para>An attempt was made to open a descriptor with an illegal combination
          of
          <see cref="F:Mono.Unix.Native.OpenFlags.O_RDONLY" />,
          <see cref="F:Mono.Unix.Native.OpenFlags.O_WRONLY" />, and
          <see cref="F:Mono.Unix.Native.OpenFlags.O_RDWR" />.
            [<see cref="F:Mono.Unix.Native.Errno.EINVAL" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="F:Mono.Unix.Native.OpenFlags.O_CREAT" /> was
          specified in <paramref name="flags" />.  
          <see cref="F:Mono.Unix.Native.OpenFlags.O_CREAT" /> requires a file
          mode for file creation; use 
          <see cref="M:Mono.Unix.UnixFileInfo.Open(Mono.Unix.Native.OpenFlags,Mono.Unix.Native.FilePermissions" qualify="true" />
          instead.</para>
        </exception>
        <exception cref="T:System.InvalidOperationException">
          <para>
            <see cref="F:Mono.Unix.Native.OpenFlags.O_SHLOCK" /> or
            <see cref="F:Mono.Unix.Native.OpenFlags.O_EXLOCK" /> is specified
            but the underlying file system does not support locking.
            [<see cref="F:Mono.Unix.Native.Errno.EOPNOTSUPP" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is a special
            file mounted through a file system that does not support access to
            it (e.g. NFS).
            [<see cref="F:Mono.Unix.Native.Errno.EOPNOTSUPP" />]
          </para>
          <para>-or-</para>
          <para>An attempt was made to open a socket.
            [<see cref="F:Mono.Unix.Native.Errno.EOPNOTSUPP" />]
          </para>
        </exception>
        <exception cref="T:System.UnauthorizedAccessException">
          <para>Search permission is denied for a component of the path
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.
            [<see cref="F:Mono.Unix.Native.Errno.EACCESS" />]
          </para>
          <para>-or-</para>
          <para>The required permissions (for reading and/or writing)
          are denied for the given flags.
            [<see cref="F:Mono.Unix.Native.Errno.EACCESS" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> does not
          exist, and <see cref="P:Mono.Unix.UnixFileInfo.Directory" /> does not
          permit writing.
            [<see cref="F:Mono.Unix.Native.Errno.EACCESS" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is a
          directory.
            [<see cref="F:Mono.Unix.Native.Errno.EISDIR" />]
          </para>
        </exception>
        <exception cref="T:System.IO.DirectoryNotFoundException">
          A component of the path prefix of 
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is not a
          directory.
            [<see cref="F:Mono.Unix.Native.Errno.ENOTDIR" />]
        </exception>
        <exception cref="T:System.IO.FileNotFoundException">
          <para>A component of <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> 
          that must exist does not exist.
            [<see cref="F:Mono.Unix.Native.Errno.ENOENT" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> does not exist
          and <see cref="F:Mono.Unix.Native.OpenFlags.O_CREAT" /> is not
          set.
            [<see cref="F:Mono.Unix.Native.Errno.ENOENT" />]
          </para>
        </exception>
        <exception cref="T:System.IO.IOException">
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> resides on a
          read-only file system.
            [<see cref="F:Mono.Unix.Native.Errno.EROFS" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is a
          character device or block device, and the device associated with
          this file does not exist.
            [<see cref="F:Mono.Unix.Native.Errno.ENXIO" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is a
          fifo, no process has it open for reading, and the arguments specify
          it is to be opened for writing.
            [<see cref="F:Mono.Unix.Native.Errno.ENXIO" />]
          </para>
          <para>-or-</para>
          <para>The directory <see cref="P:Mono.Unix.UnixFileInfo.Directory" /> 
          cannot be extended because there is no space left on the file
          system containing the directory.
            [<see cref="F:Mono.Unix.Native.Errno.ENOSPC" />]
          </para>
          <para>-or-</para>
          <para>There are no free inodes on the file system on which the file
          is being created.
            [<see cref="F:Mono.Unix.Native.Errno.ENOSPC" />]
          </para>
          <para>-or-</para>
          <para>An I/O error occurred while making the directory entry or
          allocating the inode.
            [<see cref="F:Mono.Unix.Native.Errno.EIO" />]
          </para>
        </exception>
        <exception cref="T:System.IO.PathTooLongException">
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> was too long.
            [<see cref="F:Mono.Unix.Native.Errno.ENAMETOOLONG" />]
        </exception>
        <exception cref="T:Mono.Unix.UnixIOException">
          <para>Too many symbolic links were encountered in translating 
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.
            [<see cref="F:Mono.Unix.Native.Errno.ELOOP" />]
          </para>
          <para>-or-</para>
          <para>The process has already reached its limit for open file
          descriptors.
            [<see cref="F:Mono.Unix.Native.Errno.EMFILE" />]
          </para>
          <para>-or-</para>
          <para>The system file table is full.
            [<see cref="F:Mono.Unix.Native.Errno.ENFILE" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="F:Mono.Unix.Native.OpenFlags.O_NOFOLLOW" /> was
          specified and the target is a symbolic link.
            [<see cref="F:Mono.Unix.Native.Errno.EMLINK" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="F:Mono.Unix.Native.OpenFlags.O_NONBLOCK" /> and one of
            <see cref="F:Mono.Unix.Native.OpenFlags.O_SHLOCK" /> or
            <see cref="F:Mono.Unix.Native.OpenFlags.O_EXLOCK" /> is specified
            and the file is locked.
            [<see cref="F:Mono.Unix.Native.Errno.EWOULDBLOCK" />]
          </para>
          <para>-or-</para>
          <para>The user's quota of inodes on the file system containing
          <see cref="P:Mono.Unix.UnixFileInfo.Directory" /> has been exhausted.
            [<see cref="F:Mono.Unix.Native.Errno.EDQUOT" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileInfo.Directory" /> cannot be
          extended because the user's quota of disk blocks on the file system
          containing this directory has been exhausted.
            [<see cref="F:Mono.Unix.Native.Errno.EDQUOT" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is a
          pure procedure (shared text) file that is being executed and 
          <see cref="M:Mono.Unix.Native.Syscall.open" /> requests write
          access.
            [<see cref="F:Mono.Unix.Native.Errno.ETXTBSY" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="F:Mono.Unix.Native.OpenFlags.O_CREAT" /> and
            <see cref="F:Mono.Unix.Native.OpenFlags.O_EXCL" /> were specified
            and 
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />
            exists.
            [<see cref="F:Mono.Unix.Native.Errno.EEXIST" />]
          </para>
        </exception>
        <returns>A <see cref="T:Mono.Unix.UnixStream" /> that provides
        write access to <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.</returns>
        <remarks>
          <para>
            This is equivalent to <c>
              <see cref="M:Mono.Unix.UnixFileInfo.Open(System.IO.FileMode,System.IO.FileAccess" qualify="false" /> (<see cref="F:System.IO.FileMode.OpenOrCreate" />,
              <see cref="F:System.IO.FileAccess.Write" />)</c>.
          </para>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="DirectoryName">
      <MemberSignature Language="C#" Value="public string DirectoryName { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>Gets the name of the directory that 
        <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> resides in.</summary>
        <value>A <see cref="T:System.String" /> containing the directory that 
        <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> resides in.</value>
        <remarks>
          <para>This is equivalent to 
            <see cref="M:Mono.Unix.UnixPath.GetDirectoryName" />(<see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />).
          </para>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="Directory">
      <MemberSignature Language="C#" Value="public Mono.Unix.UnixDirectoryInfo Directory { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>Mono.Unix.UnixDirectoryInfo</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>Gets a <see cref="T:Mono.Unix.UnixDirectoryInfo" /> instance
        containing information about the directory that
        <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> resides in.</summary>
        <value>A <see cref="T:Mono.Unix.UnixDirectoryInfo" /> instance
        containing information about the directory 
        <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> resides in.
        </value>
        <remarks>
          <para>This is identical to 
          <see cref="C:Mono.Unix.UnixDirectoryInfo(System.String)" qualify="false" />(<see cref="P:Mono.Unix.UnixFileInfo.DirectoryName" />).
          </para>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="Delete">
      <MemberSignature Language="C#" Value="public override void Delete ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>To be added.</summary>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="Name">
      <MemberSignature Language="C#" Value="public override string Name { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>To be added.</summary>
        <value>To be added.</value>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
  </Members>
  <Docs>
    <summary>Provides information and performs operations on files.</summary>
    <remarks>
      <para>The <see cref="T:Mono.Unix.UnixFileInfo" /> class provides
      information about a file.  It also allows basic file manipulation:</para>
      <list type="bullet">
        <item>
          <term>File creation with 
          <see cref="M:Mono.Unix.UnixFileInfo.Create" /> and
          <see cref="M:Mono.Unix.UnixFileInfo.Open" />.</term>
        </item>
        <item>
          <term>File deletion with 
          <see cref="M:Mono.Unix.UnixFileInfo.Delete" />.</term>
        </item>
      </list>
    </remarks>
    <altmember cref="T:Mono.Unix.UnixDirectoryInfo" />
    <altmember cref="T:Mono.Unix.UnixSymbolicLinkInfo" />
  </Docs>
</Type>
