<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <!--Rendered using the Haskell Html Library v0.2--> <HTML ><HEAD ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8" ><TITLE >System.Posix.Directory</TITLE ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css" ><SCRIPT SRC="haddock-util.js" TYPE="text/javascript" ></SCRIPT ><SCRIPT TYPE="text/javascript" >window.onload = function () {setSynopsis("mini_System-Posix-Directory.html")};</SCRIPT ></HEAD ><BODY ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="topbar" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title" >unix-2.3.2.0: POSIX functionality</TD ><TD CLASS="topbut" ><A HREF="index.html" >Contents</A ></TD ><TD CLASS="topbut" ><A HREF="doc-index.html" >Index</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="modulebar" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD ><FONT SIZE="6" >System.Posix.Directory</FONT ></TD ><TD ALIGN="right" ><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="infohead" >Portability</TD ><TD CLASS="infoval" >non-portable (requires POSIX)</TD ></TR ><TR ><TD CLASS="infohead" >Stability</TD ><TD CLASS="infoval" >provisional</TD ></TR ><TR ><TD CLASS="infohead" >Maintainer</TD ><TD CLASS="infoval" >libraries@haskell.org</TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="section4" ><B >Contents</B ></TD ></TR ><TR ><TD ><DL ><DT ><A HREF="#1" >Creating and removing directories </A ></DT ><DT ><A HREF="#2" >Reading directories </A ></DT ><DT ><A HREF="#3" >The working dirctory </A ></DT ></DL ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" >Description</TD ></TR ><TR ><TD CLASS="doc" >POSIX directory support </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" >Synopsis</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="#v%3AcreateDirectory" >createDirectory</A > :: <A HREF="../base/System-IO.html#t%3AFilePath" >FilePath</A > -> <A HREF="../base/System-Posix-Types.html#t%3AFileMode" >FileMode</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AremoveDirectory" >removeDirectory</A > :: <A HREF="../base/System-IO.html#t%3AFilePath" >FilePath</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3ADirStream" >DirStream</A > </TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AopenDirStream" >openDirStream</A > :: <A HREF="../base/System-IO.html#t%3AFilePath" >FilePath</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="System-Posix-Directory.html#t%3ADirStream" >DirStream</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AreadDirStream" >readDirStream</A > :: <A HREF="System-Posix-Directory.html#t%3ADirStream" >DirStream</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../base/System-IO.html#t%3AFilePath" >FilePath</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3ArewindDirStream" >rewindDirStream</A > :: <A HREF="System-Posix-Directory.html#t%3ADirStream" >DirStream</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AcloseDirStream" >closeDirStream</A > :: <A HREF="System-Posix-Directory.html#t%3ADirStream" >DirStream</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3ADirStreamOffset" >DirStreamOffset</A > </TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AtellDirStream" >tellDirStream</A > :: <A HREF="System-Posix-Directory.html#t%3ADirStream" >DirStream</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="System-Posix-Directory.html#t%3ADirStreamOffset" >DirStreamOffset</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AseekDirStream" >seekDirStream</A > :: <A HREF="System-Posix-Directory.html#t%3ADirStream" >DirStream</A > -> <A HREF="System-Posix-Directory.html#t%3ADirStreamOffset" >DirStreamOffset</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AgetWorkingDirectory" >getWorkingDirectory</A > :: <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../base/System-IO.html#t%3AFilePath" >FilePath</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AchangeWorkingDirectory" >changeWorkingDirectory</A > :: <A HREF="../base/System-IO.html#t%3AFilePath" >FilePath</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AchangeWorkingDirectoryFd" >changeWorkingDirectoryFd</A > :: <A HREF="../base/System-Posix-Types.html#t%3AFd" >Fd</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" ><A NAME="1" ><A NAME="1" >Creating and removing directories </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:createDirectory" ><A NAME="v%3AcreateDirectory" ></A ></A ><B >createDirectory</B > :: <A HREF="../base/System-IO.html#t%3AFilePath" >FilePath</A > -> <A HREF="../base/System-Posix-Types.html#t%3AFileMode" >FileMode</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="doc" ><TT >createDirectory dir mode</TT > calls <TT >mkdir</TT > to create a new directory, <TT >dir</TT >, with permissions based on <TT >mode</TT >. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:removeDirectory" ><A NAME="v%3AremoveDirectory" ></A ></A ><B >removeDirectory</B > :: <A HREF="../base/System-IO.html#t%3AFilePath" >FilePath</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" ><A NAME="2" ><A NAME="2" >Reading directories </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t:DirStream" ><A NAME="t%3ADirStream" ></A ></A ><B >DirStream</B > </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:openDirStream" ><A NAME="v%3AopenDirStream" ></A ></A ><B >openDirStream</B > :: <A HREF="../base/System-IO.html#t%3AFilePath" >FilePath</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="System-Posix-Directory.html#t%3ADirStream" >DirStream</A ></TD ></TR ><TR ><TD CLASS="doc" ><TT >openDirStream dir</TT > calls <TT >opendir</TT > to obtain a directory stream for <TT >dir</TT >. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:readDirStream" ><A NAME="v%3AreadDirStream" ></A ></A ><B >readDirStream</B > :: <A HREF="System-Posix-Directory.html#t%3ADirStream" >DirStream</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../base/System-IO.html#t%3AFilePath" >FilePath</A ></TD ></TR ><TR ><TD CLASS="doc" ><TT >readDirStream dp</TT > calls <TT >readdir</TT > to obtain the next directory entry (<TT >struct dirent</TT >) for the open directory stream <TT >dp</TT >, and returns the <TT >d_name</TT > member of that structure. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:rewindDirStream" ><A NAME="v%3ArewindDirStream" ></A ></A ><B >rewindDirStream</B > :: <A HREF="System-Posix-Directory.html#t%3ADirStream" >DirStream</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="doc" ><TT >rewindDirStream dp</TT > calls <TT >rewinddir</TT > to reposition the directory stream <TT >dp</TT > at the beginning of the directory. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:closeDirStream" ><A NAME="v%3AcloseDirStream" ></A ></A ><B >closeDirStream</B > :: <A HREF="System-Posix-Directory.html#t%3ADirStream" >DirStream</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="doc" ><TT >closeDirStream dp</TT > calls <TT >closedir</TT > to close the directory stream <TT >dp</TT >. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t:DirStreamOffset" ><A NAME="t%3ADirStreamOffset" ></A ></A ><B >DirStreamOffset</B > </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:tellDirStream" ><A NAME="v%3AtellDirStream" ></A ></A ><B >tellDirStream</B > :: <A HREF="System-Posix-Directory.html#t%3ADirStream" >DirStream</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="System-Posix-Directory.html#t%3ADirStreamOffset" >DirStreamOffset</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:seekDirStream" ><A NAME="v%3AseekDirStream" ></A ></A ><B >seekDirStream</B > :: <A HREF="System-Posix-Directory.html#t%3ADirStream" >DirStream</A > -> <A HREF="System-Posix-Directory.html#t%3ADirStreamOffset" >DirStreamOffset</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" ><A NAME="3" ><A NAME="3" >The working dirctory </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:getWorkingDirectory" ><A NAME="v%3AgetWorkingDirectory" ></A ></A ><B >getWorkingDirectory</B > :: <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../base/System-IO.html#t%3AFilePath" >FilePath</A ></TD ></TR ><TR ><TD CLASS="doc" ><TT >getWorkingDirectory</TT > calls <TT >getcwd</TT > to obtain the name of the current working directory. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:changeWorkingDirectory" ><A NAME="v%3AchangeWorkingDirectory" ></A ></A ><B >changeWorkingDirectory</B > :: <A HREF="../base/System-IO.html#t%3AFilePath" >FilePath</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="doc" ><TT >changeWorkingDirectory dir</TT > calls <TT >chdir</TT > to change the current working directory to <TT >dir</TT >. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:changeWorkingDirectoryFd" ><A NAME="v%3AchangeWorkingDirectoryFd" ></A ></A ><B >changeWorkingDirectoryFd</B > :: <A HREF="../base/System-Posix-Types.html#t%3AFd" >Fd</A > -> <A HREF="../base/System-IO.html#t%3AIO" >IO</A > <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="botbar" >Produced by <A HREF="http://www.haskell.org/haddock/" >Haddock</A > version 2.4.2</TD ></TR ></TABLE ></BODY ></HTML >