X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=lib%2Fsilcutil%2Fsilcfileutil.h;h=b3b0312c31b14cac69ea23e78f411bf9657dfc7c;hb=e7b6c157b80152bf9fb9266e6bdd93f9fb0db776;hp=80624ed5e89f0d3bb247077f75e0d01be73a20b3;hpb=67ead87b5688a88f997ed02252625e1ebb882de4;p=silc.git diff --git a/lib/silcutil/silcfileutil.h b/lib/silcutil/silcfileutil.h index 80624ed5..b3b0312c 100644 --- a/lib/silcutil/silcfileutil.h +++ b/lib/silcutil/silcfileutil.h @@ -1,10 +1,10 @@ /* - silcfileutil.h + silcfileutil.h Author: Pekka Riikonen - Copyright (C) 1997 - 2002 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 @@ -17,10 +17,12 @@ */ -/****h* silcutil/Silc File Util Interface +/****h* silcutil/SILC File Util Interface * * DESCRIPTION * + * The SILC File Util Interface is a small set of functions that provides a + * portable access method to the filesystem. * ***/ @@ -29,15 +31,161 @@ /* Prototypes */ +/****f* silcutil/SilcFileUtilAPI/silc_file_open + * + * SYNOPSIS + * + * int silc_file_open(const char *filename, int flags); + * + * DESCRIPTION + * + * 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). Returns the opened file descriptor or -1 on + * error. + * + ***/ int silc_file_open(const char *filename, int flags); + +/****f* silcutil/SilcFileUtilAPI/silc_file_open_mode + * + * SYNOPSIS + * + * int silc_file_open_mode(const char *filename, int flags, int mode); + * + * DESCRIPTION + * + * 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); + +/****f* silcutil/SilcFileUtilAPI/silc_file_read + * + * SYNOPSIS + * + * int silc_file_read(int fd, unsigned char *buf, SilcUInt32 buf_len); + * + * DESCRIPTION + * + * 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); + +/****f* silcutil/SilcFileUtilAPI/silc_file_write + * + * SYNOPSIS + * + * int silc_file_write(int fd, const char *buffer, SilcUInt32 len); + * + * DESCRIPTION + * + * 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); + +/****f* silcutil/SilcFileUtilAPI/silc_file_close + * + * SYNOPSIS + * + * int silc_file_close(int fd); + * + * 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); -char *silc_file_readfile(const char *filename, SilcUInt32 *return_len); -int silc_file_writefile(const char *filename, const char *buffer, SilcUInt32 len); -int silc_file_writefile_mode(const char *filename, const char *buffer, + +/****f* silcutil/SilcFileUtilAPI/silc_file_set_nonblock + * + * SYNOPSIS + * + * int silc_file_set_nonblock(int fd); + * + * DESCRIPTION + * + * Sets the file descriptor to non-blocking mode. + * + ***/ +int silc_file_set_nonblock(int fd); + +/****f* silcutil/SilcFileUtilAPI/silc_file_readfile + * + * SYNOPSIS + * + * char *silc_file_readfile(const char *filename, SilcUInt32 *return_len, + * SilcStack stack); + * + * DESCRIPTION + * + * Reads the content of `filename' to a buffer. The allocated buffer is + * returned. This does not NULL terminate the buffer but EOF terminate + * it. The caller must replace the EOF with NULL if the buffer must be + * NULL terminated. + * + * 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, + SilcStack stack); + +/****f* silcutil/SilcFileUtilAPI/silc_file_writefile + * + * SYNOPSIS + * + * int silc_file_writefile(const char *filename, const char *buffer, + * SilcUInt32 len); + * + * DESCRIPTION + * + * Writes a buffer to the file. If the file is created specific mode is + * set to the file. + * + ***/ +int silc_file_writefile(const char *filename, const char *buffer, + SilcUInt32 len); + +/****f* silcutil/SilcFileUtilAPI/silc_file_writefile_mode + * + * SYNOPSIS + * + * int silc_file_writefile_mode(const char *filename, const char *buffer, + * SilcUInt32 len, int mode); + * + * DESCRIPTION + * + * Writes a buffer to the file. If the file is created the specified `mode' + * is set to the file. + * + ***/ +int silc_file_writefile_mode(const char *filename, const char *buffer, SilcUInt32 len, int mode); + +/****f* silcutil/SilcFileUtilAPI/silc_file_size + * + * SYNOPSIS + * + * SilcUInt64 silc_file_size(const char *filename); + * + * DESCRIPTION + * + * Returns the size of `filename'. Returns 0 on error. + * + ***/ SilcUInt64 silc_file_size(const char *filename); -#endif /* SILCFILEUTIL_H */ +#endif /* !SILCFILEUTIL_H */