You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by rb...@hyperreal.org on 1999/02/22 13:59:18 UTC

cvs commit: apache-apr/docs fileio.txt

rbb         99/02/22 04:59:18

  Added:       docs     fileio.txt
  Log:
  I am breaking the spec into smaller files.  This makes them a bit more
  manageable, and lets me think I am getting somewhere in this project.
  This file begins to detail the fileio functions.  It will eventually give
  all the prototypes, as well as enough information to document to function.
  Currently, only apr_open is done.
  
  Revision  Changes    Path
  1.1                  apache-apr/docs/fileio.txt
  
  Index: fileio.txt
  ===================================================================
  <h2>File I/O</h2>
  
   APRFile *apr_open(char *, APRUInt32, APRFilePerms)
  	Open the specified file, and return a method for accessing that file.
       Arguments:
  	arg 1)  full path name to the file to be opened.
  	arg 2)  Note: this may become its own type with accessor methods
                  flags that determine how to open or create the file.  
  	        Or'ed value of:
  			APR_READ         Open for reading
  			APR_WRITE        Open for writing
  			APR_CREATE       Create the file if not there
  			APR_APPEND	The file ptr is set to end prior to 
  					write
  			APR_TRUNCATE	If the file is there, length is 
  					truncated to 0.
  			APR_BINARY      Not a text file.
  			APR_BUFFERED    buffer the data.
  			APR_EXCL        return error if APR_CREATE and file
  					exists.
  			APR_NONBLOCK    don't block on read or write.
  	arg 3)  Access permissions to set for the file if it is created with
  		APR_CREATE. We haven't decided how exactly we want this to
                  work, but it will support the set of Unix permissions at
                  minimum.
          return) The abstracted file descriptor for the file that was opened.  
  	        NULL on error
  
  Notes:  The values assigned when the file is opened is not kept current.  It is
          not garaunteed to be accurate after the file is opened.  It is intended
          for use in situations where the latency between opening and use a file
          is small, and a stat isn't required after opening the file. 
  
  
  APRStatus apr_close(APRFile);
  	Close the specified file descriptor
       Arguments:
  	arg 1)  file descriptor of file to be closed.
   APRStatus apr_read(APRFile, void *, APRUInt64, APRUInt64 *)
  	Read n bytes from file and store in buffer.
       Arguments:
  	arg 1)  File descriptor to read from
  	arg 2)  buffer to store data in
  	arg 3)  number of bytes to read
  	arg 4)  pointer to number of bytes read. (returned by APR)
   APRStatus apr_write(APRFile, void *, APRUInt64, APRUInt64 *)
  	Write n bytes of data from buffer to file
       Arguments:
  	arg 1)  File descriptor to write data to
  	arg 2)  buffer to read data from
  	arg 3)  number of bytes to write
  	arg 4)  pointer to number of bytes written. (returned by APR)
   APRStatus apr_writev(APRFile, APRIOVec *, APRUInt64, APUInt64 *)
  	Same as apr_write, except it gets the data from the APRIOVec array.
       Arguments:
  	arg 1)  File descriptor to write data to
  	arg 2)  Array from which to get the data to write to the file
  	arg 3)  Number of elements in the APRIOVec array.  Must be smaller
  		than apr_MAX_IOVEC_SIZE, if not function will fail with
  		apr_BUFFER_OVERFLOW_ERROR
  	arg 4) number of bytes written.  APR_FAILURE on failure.
       NOTES: apr_writev will write a complete entry from APRIOVec array before
  	    moving on to the next one.
   APRStatus apr_getfileinfo(char *, APRFileInfo *)  
  	Get information about the file with the given path name.
       Arguments:
  	arg 1)  path to file to get information about
  	arg 2)  Structure to store file's information in. (Returned by APR)
   APRStatus apr_seek(APRFile, APRInt64, APRSeekWhere, APRInt64 *)
  	Moves the read/write file offset pointer
       Arguments:
  	arg 1)  Pointer to File descriptor  
  	arg 2)  offset into file to move pointer to
  	arg 3)	How to move the pointer.  See APRSeekWhere def below.
  	arg 4)  Offset into file that the pointer was set to. (Returned by
                  APR)
   APRStatus apr_access(char *, APRFilePerms)
  	Determine the Accessibility of a file
       Arguments:
  	arg 1)  path to file 
  	arg 3)  Which access permissions to check for.
   APRStatus apr_opendir(char *, APRDir *)  
  	Opens the specified directory stream.		
       Arguments:
  	arg 1)  path of the directory to be opened.
  	arg 2) abstracted directory descriptor structure.
   APRStatus apr_closedir(APRDir *)  
  	Opens the specified directory stream.		
       Arguments:
  	arg 1) abstracted directory descriptor structure to be closed.
   APRStatus apr_readdir(APRDir *, APRDirent *)
  	Retrieve the next directory entry from the specified directory.
       Arguments:
  	arg 1) Abstracted directory descriptor to read from.
  	arg 2) the next directory entry.
  
  
  **************** IMPLEMENTATION DETAILS **************
  
  struct APRFile {
      int filedes;
      char * fname;
      int buffered;
      mode_t protection;
      uid_t user;
      gid_t group;
      off_t size;
      time_t atime;    
      time_t mtime;
      time_t ctime;
  }