.\" Automatically generated by Pandoc 2.10.1 .\" .TH "PMEMBLK_READ" "3" "2020-10-28" "PMDK - pmemblk API version 1.1" "PMDK Programmer's Manual" .hy .\" SPDX-License-Identifier: BSD-3-Clause .\" Copyright 2017-2018, Intel Corporation .SH NAME .PP \f[B]pmemblk_read\f[R](), \f[B]pmemblk_write\f[R]() - read or write a block from a block memory pool .SH SYNOPSIS .IP .nf \f[C] #include int pmemblk_read(PMEMblkpool *pbp, void *buf, long long blockno); int pmemblk_write(PMEMblkpool *pbp, const void *buf, long long blockno); \f[R] .fi .SH DESCRIPTION .PP The \f[B]pmemblk_read\f[R]() function reads the block with block number \f[I]blockno\f[R] from memory pool \f[I]pbp\f[R] into the buffer \f[I]buf\f[R]. Reading a block that has never been written by \f[B]pmemblk_write\f[R]() will return a block of zeroes. .PP The \f[B]pmemblk_write\f[R]() function writes a block from \f[I]buf\f[R] to block number \f[I]blockno\f[R] in the memory pool \f[I]pbp\f[R]. The write is atomic with respect to other reads and writes. In addition, the write cannot be torn by program failure or system crash; on recovery the block is guaranteed to contain either the old data or the new data, never a mixture of both. .SH RETURN VALUE .PP On success, the \f[B]pmemblk_read\f[R]() and \f[B]pmemblk_write\f[R]() functions return 0. On error, they return -1 and set \f[I]errno\f[R] appropriately. .SH SEE ALSO .PP \f[B]libpmemblk\f[R](7) and \f[B]\f[R]