io.h - Man Page
C wrapper for I/O interfaces.
Synopsis
#include 'dmlite.h'
#include 'any.h'
#include 'pool.h'
#include <sys/uio.h>
#include <unistd.h>
Macros
#define O_INSECURE 010
Typedefs
typedef struct dmlite_fd dmlite_fd
Functions
dmlite_fd * dmlite_fopen (dmlite_context *context, const char *path, int flags, const dmlite_any_dict *extra,...)
Opens a file.
int dmlite_fclose (dmlite_fd *fd)
Closes a file.
int dmlite_fstat (dmlite_fd *fd, struct stat *buf)
Gets information about a file descriptor.
int dmlite_fseek (dmlite_fd *fd, off_t offset, int whence)
Sets the file position.
off_t dmlite_ftell (dmlite_fd *fd)
Returns the cursor position.
ssize_t dmlite_fread (dmlite_fd *fd, void *buffer, size_t count)
Reads from a file.
ssize_t dmlite_fwrite (dmlite_fd *fd, const void *buffer, size_t count)
Writes to a file.
ssize_t dmlite_freadv (dmlite_fd *fd, const struct iovec *vector, size_t count)
Reads from a file into multiple buffers.
ssize_t dmlite_fwritev (dmlite_fd *fd, const struct iovec *vector, size_t count)
Reads from a file into multiple buffers.
ssize_t dmlite_fpread (dmlite_fd *fd, void *buffer, size_t count, off_t offset)
Reads up to count bytes starting at the given offset. Does not change internal offset.
ssize_t dmlite_fpwrite (dmlite_fd *fd, const void *buffer, size_t count, off_t offset)
Writes count bytes starting at the given offset. Does not change internal offset.
int dmlite_feof (dmlite_fd *fd)
Returns 1 if EOF.
int dmlite_ferrno (dmlite_fd *fd)
Returns the last errror code.
const char * dmlite_ferror (dmlite_fd *fd)
Returns the last error message.
int dmlite_donewriting (dmlite_context *context, const dmlite_location *loc)
Finishes a PUT.
int dmlite_fileno (dmlite_fd *fd)
Returns the system file descriptor if available.
Detailed Description
C wrapper for I/O interfaces.
- Author
Alejandro Álvarez Ayllon aalvarez@cern.ch
Macro Definition Documentation
#define O_INSECURE 010
Use this flag in addition to the standard ones to skip any security check (i.e. token validation)
Typedef Documentation
typedef struct dmlite_fd dmlite_fd
Handle for a file descriptor.
Function Documentation
int dmlite_donewriting (dmlite_context * context, const dmlite_location * loc)
Finishes a PUT.
- Parameters
context The DM context.
loc The location as returned by dmlite_put.
Returns
0 on success, error code otherwise.
int dmlite_fclose (dmlite_fd * fd)
Closes a file.
- Parameters
fd The file descriptor as returned by dmlite_open.
Returns
0 on success, error code otherwise.
int dmlite_feof (dmlite_fd * fd)
Returns 1 if EOF.
- Parameters
fd The file descriptor.
Returns
0 if there is more to read. 1 if EOF.
int dmlite_ferrno (dmlite_fd * fd)
Returns the last errror code.
- Parameters
fd The file descriptor.
- Returns
The last error code.
const char * dmlite_ferror (dmlite_fd * fd)
Returns the last error message.
- Parameters
fd The file descriptor.
- Returns
A pointer to an internal buffer with the last error message.
- Note
This buffer is specific to each file descriptor.
int dmlite_fileno (dmlite_fd * fd)
Returns the system file descriptor if available.
- Parameters
fd The file descriptor.
- Returns
The file descriptor, -1 if it can not be retrieved.
- Note
Support depends on the plugin providing the file.
Calling dmlite_fclose will close the file descriptor returned by this.
dmlite_fd * dmlite_fopen (dmlite_context * context, const char * path, int flags, const dmlite_any_dict * extra, ...)
Opens a file.
- Parameters
context The DM context.
path The path to open.
flags See open()
extra The key-value pairs.
... Should be mode_t when called with O_CREAT.- Returns
An opaque handler for the file, NULL on failure.
ssize_t dmlite_fpread (dmlite_fd * fd, void * buffer, size_t count, off_t offset)
Reads up to count bytes starting at the given offset. Does not change internal offset.
- Parameters
fd File descriptor.
buffer Buffer where to put the data.
count Number of bytes to read.
offset Read offset.- Returns
Number of bytes actually read on success. -1 on failure.
ssize_t dmlite_fpwrite (dmlite_fd * fd, const void * buffer, size_t count, off_t offset)
Writes count bytes starting at the given offset. Does not change internal offset.
- Parameters
fd File descriptor.
buffer Data to write.
count Number of bytes to read.
offset Write offset.- Returns
Number of bytes actually write on success. -1 on failure.
ssize_t dmlite_fread (dmlite_fd * fd, void * buffer, size_t count)
Reads from a file.
- Parameters
fd The file descriptor.
buffer Where to put the data.
count Number of bytes to read.- Returns
Number of bytes actually read on success. -1 on failure.
ssize_t dmlite_freadv (dmlite_fd * fd, const struct iovec * vector, size_t count)
Reads from a file into multiple buffers.
- Parameters
fd The file descriptor.
vector Array of buffers.
count Number of elements in the array of buffers.- Returns
Number of bytes actually read on success. -1 on failure.
int dmlite_fseek (dmlite_fd * fd, off_t offset, int whence)
Sets the file position.
- Parameters
fd The file descriptor.
offset The offset.
whence See fseek()
Returns
0 on success, error code otherwise.
int dmlite_fstat (dmlite_fd * fd, struct stat * buf)
Gets information about a file descriptor.
- Parameters
fd The file descriptor.
buf Where to put the information.
Returns
0 on success, error code otherwise.
- Note
Not all plug-ins will fill all the fields, but st_size is a reasonable expectation.
off_t dmlite_ftell (dmlite_fd * fd)
Returns the cursor position.
- Parameters
fd The file descriptor.
- Returns
The cursor position, or -1 on error.
ssize_t dmlite_fwrite (dmlite_fd * fd, const void * buffer, size_t count)
Writes to a file.
- Parameters
fd The file descriptor.
buffer A pointer to the data.
count Number of bytes to write.- Returns
Number of bytes actually written. -1 on failure.
ssize_t dmlite_fwritev (dmlite_fd * fd, const struct iovec * vector, size_t count)
Reads from a file into multiple buffers.
- Parameters
fd The file descriptor.
vector Array of buffers.
count Number of elements in the array of buffers.- Returns
Number of bytes actually read on success. -1 on failure.
Author
Generated automatically by Doxygen for dmlite from the source code.