---
name: "lbdb_dotlock"
section: "1"
platform: "linux"
package: "lbdb"
version: "0.56-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/lbdb_dotlock"
---

# lbdb\_dotlock(1)

Lock mail spool files.

## NAME

lbdb\_dotlock - Lock mail spool files.

## SYNOPSIS

**lbdb\_dotlock** \[-t\|-f\|-u\|-d\] \[-r *retries*\] *file*

## DESCRIPTION

**dotlock** implements the traditional mail spool file locking method: To lock *file*, a file named *file*.lock is created.

## OPTIONS

- \-t

  Just try. **dotlock** won't actually lock a file, but inform the invoking process if it's at all possible to lock *file*.

- \-f

  Force the lock.  If another process holds a lock on *file* longer than a certain amount of time,  **dotlock** will break that lock by removing the lockfile.

- \-u

  Unlock. **dotlock** will remove *file*.lock.

- \-d

  Delete. **dotlock** will lock *file*, remove it if it has length 0, and afterwards remove *file*.lock.

- \-r *retries*

  This command line option tells  **dotlock** to try locking *retries* times before giving up or (if invoked with the  **-f** command line option) break a lock.  The default value is 5. **dotlock** waits one second between successive locking attempts.

## FILES

- *file*.lock

  The lock file  **dotlock** generates.

## SEE ALSO

[**fcntl**(2)](/fcntl/2.md), [**flock**(2)](/flock/2.md), [**lockfile**(1)](/lockfile/1.md), [**lbdb-fetchaddr**(1)](/lbdb-fetchaddr/1.md)

## DIAGNOSTICS

**dotlock** gives all diagnostics in its return values:

- **0 - DL\_EX\_OK**

  The program was successful.

- **1 - DL\_EX\_ERROR**

  An unspecified error such as bad command line parameters, lack of system memory and the like has occurred.

- **3 - DL\_EX\_EXIST**

  The  user wants to lock a file which has been locked by another process already.  If  **dotlock** is invoked with the **-f** command line option,  **dotlock** won't generate this error, but break other processes' locks.

- **4 - DL\_EX\_NEED\_RPIVS**

  This return value only occurs if  **dotlock** has been invoked with the  **-t** command line option.  It means that **dotlock** will have to use its group mail privileges to lock *file*.

- **5 - DL\_EX\_IMPOSSIBLE**

  This return value only occurs if **dotlock** has been invoked with the **-t** command line option.  It means that **dotlock** is unable to lock *file*.

## NOTES

**dotlock** tries to implement an NFS-safe dotlocking method which was borrowed from  [**lockfile**(1)](/lockfile/1.md).

If the user can't open *file* for reading with his normal privileges, dotlock will return the **DL\_EX\_ERROR** exit value to avoid certain attacks against other users' spool files. The code carefully avoids race conditions when checking permissions; for details of all this see the comments in dotlock.c.

## HISTORY

**dotlock** is part of the Mutt mail user agent package.  It has been created to avoid running mutt with group mail privileges.

## AUTHOR

Thomas Roessler \<roessler@guug.de\>
