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.

Info

Sun Mar 28 2021 Version 0.6 dmlite