Added SILC Thread Queue API
[silc.git] / lib / silcutil / silcfileutil.h
index 80e9d99a45be468e4ec1a3942af1bf135b8e2797..b3b0312c31b14cac69ea23e78f411bf9657dfc7c 100644 (file)
@@ -4,7 +4,7 @@
 
   Author: Pekka Riikonen <priikone@silcnet.org>
 
-  Copyright (C) 1997 - 2005 Pekka Riikonen
+  Copyright (C) 1997 - 2007 Pekka Riikonen
 
   This program is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
@@ -41,7 +41,8 @@
  *
  *    Opens a file indicated by the filename `filename' with flags indicated
  *    by `flags'.  The opening permission defaults to 0600.  The `flags'
- *    are defined in open(2).
+ *    are defined in open(2).  Returns the opened file descriptor or -1 on
+ *    error.
  *
  ***/
 int silc_file_open(const char *filename, int flags);
@@ -57,6 +58,7 @@ int silc_file_open(const char *filename, int flags);
  *    Opens a file indicated by the filename `filename' with flags indicated
  *    by `flags'.  The argument `mode' specifies the permissions to use in
  *    case a new file is created.  The `flags' are defined in open(2).
+ *    Returns the opened file descriptor or -1 on error and sets silc_errno.
  *
  ***/
 int silc_file_open_mode(const char *filename, int flags, int mode);
@@ -69,7 +71,8 @@ int silc_file_open_mode(const char *filename, int flags, int mode);
  *
  * DESCRIPTION
  *
- *    Reads data from file descriptor `fd' to `buf'.
+ *    Reads data from file descriptor `fd' to `buf'.  Returns the amount of
+ *    bytes read, 0 on EOF or -1 on error and sets silc_errno.
  *
  ***/
 int silc_file_read(int fd, unsigned char *buf, SilcUInt32 buf_len);
@@ -82,7 +85,8 @@ int silc_file_read(int fd, unsigned char *buf, SilcUInt32 buf_len);
  *
  * DESCRIPTION
  *
- *    Writes `buffer' of length of `len' to file descriptor `fd'.
+ *    Writes `buffer' of length of `len' to file descriptor `fd'.  Returns
+ *    the amount of bytes written, 0 on EOF or -1 on error and sets silc_errno.
  *
  ***/
 int silc_file_write(int fd, const char *buffer, SilcUInt32 len);
@@ -96,6 +100,7 @@ int silc_file_write(int fd, const char *buffer, SilcUInt32 len);
  * DESCRIPTION
  *
  *    Closes file descriptor previously opened with silc_file_open().
+ *    Returns 0 on success or -1 on error and sets silc_errno.
  *
  ***/
 int silc_file_close(int fd);
@@ -117,7 +122,8 @@ int silc_file_set_nonblock(int fd);
  *
  * SYNOPSIS
  *
- *    char *silc_file_readfile(const char *filename, SilcUInt32 *return_len);
+ *    char *silc_file_readfile(const char *filename, SilcUInt32 *return_len,
+ *                             SilcStack stack);
  *
  * DESCRIPTION
  *
@@ -129,8 +135,13 @@ int silc_file_set_nonblock(int fd);
  *    If the `return_len' pointer is not NULL, it's filled with the length of
  *    the file.
  *
+ *    If `stack' is non-NULL the returned buffer is allocated from `stack'.
+ *    The allocation consumes `stack' so caller should push the stack before
+ *    calling this function and pop it later.
+ *
  ***/
-char *silc_file_readfile(const char *filename, SilcUInt32 *return_len);
+char *silc_file_readfile(const char *filename, SilcUInt32 *return_len,
+                        SilcStack stack);
 
 /****f* silcutil/SilcFileUtilAPI/silc_file_writefile
  *