Coding Guidelines/Filesystem Manipulation: Difference between revisions

From wiki.zmanda.com
Jump to navigation Jump to search
(we use gnulib functions now)
 
(4 intermediate revisions by the same user not shown)
Line 8: Line 8:
: in common-src/file.c
: in common-src/file.c
This function wraps ''close'' to retry on certain failures.
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.

Latest revision as of 14:12, 15 August 2008

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.