Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
BREAD(3)		 BSD Library Functions Manual		      BREAD(3)

NAME
     bread, bwrite -- read and write blocks of a UFS file system

LIBRARY
     UFS File System Access Library (libufs, -lufs)

SYNOPSIS
     #include <sys/param.h>
     #include <sys/mount.h>
     #include <ufs/ufs/ufsmount.h>
     #include <ufs/ufs/dinode.h>
     #include <ufs/ffs/fs.h>
     #include <libufs.h>

     ssize_t
     bread(struct uufsd	*disk, ufs2_daddr_t blockno, void *data, size_t	size);

     ssize_t
     bwrite(struct uufsd *disk,	ufs2_daddr_t blockno, const void *data,
	 size_t	size);

     int
     berase(struct uufsd *disk,	ufs2_daddr_t blockno, ufs2_daddr_t size);

DESCRIPTION
     The bread(), bwrite() and berase()	functions provide a block read,	write
     and erase API for libufs(3) consumers.  They operate on a userland	UFS
     disk structure, and perform the read and write at a given block address,
     which uses	the current d_bsize value of the structure.

RETURN VALUES
     The bread() and bwrite() functions	return the amount read or written, or
     -1	in case	of any error, including	short read.

     The berase() function returns non-zero on error.

ERRORS
     The function bread() may fail and set errno for any of the	errors speci-
     fied for the library functions ufs_disk_write(3) or pread(2).

     The function bwrite() may fail and	set errno for any of the errors	speci-
     fied for the library function pwrite(2).

     The function berase() may fail and	set errno for any of the errors	speci-
     fied for the library function ioctl(2).

     Additionally all three functions may follow the libufs(3) error method-
     ologies in	situations where the amount of data written is not equal to
     the amount	requested, or in case of a device error.

SEE ALSO
     libufs(3),	ufs_disk_write(3)

HISTORY
     These functions first appeared as part of libufs(3) in FreeBSD 5.0.

AUTHORS
     Juli Mallett <jmallett@FreeBSD.org>

BSD				 June 4, 2003				   BSD

NAME | LIBRARY | SYNOPSIS | DESCRIPTION | RETURN VALUES | ERRORS | SEE ALSO | HISTORY | AUTHORS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=bread&sektion=3&manpath=FreeBSD+12.0-RELEASE+and+Ports>

home | help