SimGrid  3.16
Versatile Simulation of Distributed Systems
File manipulation functions

Detailed Description

This module redefine some quite classical functions such as xbt_getline() or xbt_dirname() for the platforms lacking them.

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...
 

Function Documentation

◆ xbt_getline()

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.

◆ xbt_dirname()

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.

◆ xbt_basename()

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.