Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ fabort(2) — AIX PS/2 1.2.1

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

chmod, fchmod

chown, fchown

close, closex

exit, _exit

fsync, fcommit

fcntl, flock, lockf

open, openx, creat

utime



FABORT(2,L)                 AIX Technical Reference                 FABORT(2,L)



-------------------------------------------------------------------------------
fabort



PURPOSE

Aborts or undoes file changes.

SYNTAX

int fabort  (fildes)
int fildes

DESCRIPTION

The fabort system call aborts data changes made to the file specified by the
fildes parameter.  The file must be a regular file, not a pipe or special file,
and the file descriptor must either be open for write and defer commit
(O_WRONLY | O_DEFERC) or read/write and defer commit (O_RDWR | O_DEFERC).  If
the file has not changed since it was last committed (see "fsync, fcommit"),
the fabort system call has no effect.

The file's content is restored to the state of the file after the last fsync
system call.  Changes made to the file's content since the last fsync are
undone.  Changes made to the file's mode, owner, or access and modification
times are not undone, however, by this system call.  The file remains open so
further changes may be made.

Note:  The file offset pointer for this and any other of the file's open file
       descriptors are unchanged by fabort and actually may point beyond the
       end of the file since the file size is reset.

If the file is newly created (not just truncated), fabort undoes all of the
changes to the file, leaving a zero-length file, but does not undo the file
creation.

If the file is open for writing in defer-commit mode by more than one process,
fabort undoes the changes made to the file by all of the processes since the
last fsync performed by any one of the processes.  Also, since commit
operations implied by the close system call are not done until the last close
of the file, fabort undoes any changes between the last fsync and a close that
is not the last close of the file.  The use of the lockf system call is
recommended to coordinate multiple writers.

Warning:  If the file is opened in defer-commit mode by some processes and
opened for write, but not in defer-commit mode, by other processes, the results
of the fabort system call are undefined.

RETURN VALUE





Processed November 7, 1990        FABORT(2,L)                                 1





FABORT(2,L)                 AIX Technical Reference                 FABORT(2,L)



Upon successful completion, a value of 0 is returned.  If the fabort system
call fails, a value of -1 is returned, and errno is set to indicate the error.

ERROR CONDITIONS

The fabort system call fails and the file is not modified if one or more the
following are true:

EAGAIN    Another process holds an enforced mode record lock on this file.

EBADF     The fildes parameter is not a valid file descriptor for a regular
          file.

EBADF     The fildes parameter does not specify an open file.

EIO       An I/O error occurred.  The file content is still rolled back.

ENOSPC    The file system ran out of space.  The file content is still rolled
          back.

ESITEDN1  The operation could not be done because contact with the storage site
          is lost.  The file content is still rolled back unless the problem is
          only a network communication problem and there are other processes
          with this file open for writing which have not lost contact with the
          storage site.

ESITEDN2  The operation was terminated because a site failed.

RELATED INFORMATION

In this book:  "chmod, fchmod," "chown, fchown," "close, closex," "exit,
_exit," "fsync, fcommit," "fcntl, flock, lockf," "open, openx, creat," and
"utime."






















Processed November 7, 1990        FABORT(2,L)                                 2



Typewritten Software • bear@typewritten.org • Edmonds, WA 98026