---
name: "pmemlog_tell"
section: "3"
platform: "linux"
package: "libpmemlog-dev"
version: "1.13.1-1.1+b1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/pmemlog_tell"
---

# pmemlog\_tell(3)

checks current write point for the log or walks through the log

## NAME

**pmemlog\_tell**()(DEPRECATED), **pmemlog\_rewind**()(DEPRECATED), **pmemlog\_walk**()(DEPRECATED) - checks current write point for the log or walks through the log

## SYNOPSIS

-

  ```
  #include <libpmemlog.h>
  long long pmemlog_tell(PMEMlogpool *plp);
  void pmemlog_rewind(PMEMlogpool *plp);
  void pmemlog_walk(PMEMlogpool *plp, size_t chunksize,
      int (*process_chunk)(const void *buf, size_t len, void *arg),
      void *arg);
  ```

## DESCRIPTION

The **pmemlog\_tell**() function returns the current write point for the log, expressed as a byte offset into the usable log space in the memory pool. This offset starts off as zero on a newly-created log, and is incremented by each successful append operation. This function can be used to determine how much data is currently in the log.

The **pmemlog\_rewind**() function resets the current write point for the log to zero. After this call, the next append adds to the beginning of the log.

The **pmemlog\_walk**() function walks through the log *plp*, from beginning to end, calling the callback function *process\_chunk* for each *chunksize* block of data found. The argument *arg* is also passed to the callback to help avoid the need for global state. The *chunksize* argument is useful for logs with fixed-length records and may be specified as 0 to cause a single call to the callback with the entire log contents passed as the *buf* argument. The *len* argument tells the *process\_chunk* function how much data *buf* is holding. The callback function should return 1 if **pmemlog\_walk**() should continue walking through the log, or 0 to terminate the walk. The callback function is called while holding [**libpmemlog**(7)](/libpmemlog/7.md) internal locks that make calls atomic, so the callback function must not try to append to the log itself or deadlock will occur.

## RETURN VALUE

On success, **pmemlog\_tell**() returns the current write point for the log. On error, it returns -1 and sets *errno* appropriately.

The **pmemlog\_rewind**() and **pmemlog\_walk**() functions return no value.

## SEE ALSO

[**libpmemlog**(7)](/libpmemlog/7.md) and **\<https://pmem.io\>**
