libraw1394 returns the ack/rcode pair in most transaction cases. The
rcode is undefined in cases where the ack code is not equal to
ack_pending
. This is stored in a type
raw1394_errcode_t, from which the ack and rcode parts can
be extracted using two macros.
With the function raw1394_errcode_to_errno()
it is
possible to convert this to an errno number that conveys roughly the
same meaning. Many developers will find that easier to handle. This is
done automatically for the synchronous read/write/lock wrapper
functions, i.e. they return 0 for success and a negative value for
failure, in which case they also set the errno
variable
to the appropriate code. The raw ack/rcode pair can then still be
retrieved using raw1394_get_errcode()
.