SimGrid
3.13
Versatile Simulation of Distributed Systems
|
File manipulation functions. More...
Functions | |
ssize_t | xbt_getline (char **lineptr, size_t *n, FILE *stream) |
Get a single line from the stream (reimplementation of the GNU getline) More... | |
char * | xbt_dirname (const char *path) |
Returns the directory component of a path (reimplementation of POSIX dirname) More... | |
char * | xbt_basename (const char *path) |
Returns the file component of a path (reimplementation of POSIX basename) More... | |
File manipulation functions.
This module redefine some quite classical functions such as xbt_getline() or xbt_dirname() for the platforms lacking them.
ssize_t xbt_getline | ( | char ** | buf, |
size_t * | n, | ||
FILE * | stream | ||
) |
Get a single line from the stream (reimplementation of the GNU getline)
This is a reimplementation of the GNU getline function, so that our code don't depends on the GNU libc.
xbt_getline() reads an entire line from stream, storing the address of the buffer containing the text into *buf. The buffer is null-terminated and includes the newline character, if one was found.
If *buf is NULL, then xbt_getline() will allocate a buffer for storing the line, which should be freed by the user program.
Alternatively, before calling xbt_getline(), *buf can contain a pointer to a malloc()-allocated buffer *n bytes in size. If the buffer is not large enough to hold the line, xbt_getline() resizes it with realloc(), updating *buf and *n as necessary.
In either case, on a successful call, *buf and *n will be updated to reflect the buffer address and allocated size respectively.
char* xbt_dirname | ( | const char * | path | ) |
Returns the directory component of a path (reimplementation of POSIX dirname)
The argument is never modified, and the returned value must be freed after use.
char* xbt_basename | ( | const char * | path | ) |
Returns the file component of a path (reimplementation of POSIX basename)
The argument is never modified, and the returned value must be freed after use.