Coding Guidelines/Filesystem Manipulation

From wiki.zmanda.com
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Amanda supplies a few wrapper functions around the ordinary descriptor operations to handle a few common cases. In most cases, these functions are preferred over calling the wrapped function directly.

robust_open

in common-src/file.c

This function wraps open to retry on certain failures, and sets the close-on-exec flag.

robust_close

in common-src/file.c

This function wraps close to retry on certain failures.

full_read

in gnulib/full-read.c

This function calls read repeatedly until the given buffer is full, or an EOF or an error occurs. It handles interrupted syscalls appropriately.

full_write

in gnulib/full-read.c

Similarly, this function calls write repeatedly, until the entire buffer has been writte, or an error occurs.

portable_readdir

in common-src/util.c

This function wraps the various readdir implementations that might be available, including re-entrant and 64-bit versions, preferring 64-bit compatibility and re-entrancy.

safe_getcwd

in common-src/getcwd.c

This file provides an implementation of the getcwd procedure that uses getwd, for systems with getwd but without getcwd. It adds re-entrancy as well, by avoiding the use of static buffers.