maillock(3X) maillock(3X)
NAME
maillock, mailunlock - Sperrdatei für Mailbox eines Benutzers verwal-
ten
SYNTAX
cc [option ...] datei ... -lmail
#include <maillock.h>
int maillock(const char *user, int retrycnt);
int mailunlock(void);
BESCHREIBUNG
Die Funktion maillock() versucht, für die Mail-Datei eines Benutzers
eine Sperrdatei anzulegen. Wenn bereits eine Sperrdatei existiert,
geht maillock() davon aus, daß der Inhalt der Datei die Prozeßnummer
des Prozesses angibt (als ASCII-Zeichenkette, die durch ein Nullzei-
chen abgeschlossen ist), der die Sperrdatei angelegt hat (vermutlich
durch einen Aufruf von maillock()). Wenn der Prozeß, der die Sperrda-
tei angelegt hat, noch immer vorhanden ist, wartet maillock() retrycnt
mal, bevor ein Fehler signalisiert wird. Dabei wird fünf Sekunden mal
die angegebene Anzahl gewartet. Das bedeutet, das erste Warten dauert
fünf Sekunden, das nächste Warten dauert zehn Sekunden, usw., bis die
Anzahl Versuche den Wert von retrycnt erreicht. Wenn die Sperrdatei
nicht länger benötigt wird, sollte sie durch den Aufruf der Funktion
mailunlock() entfernt werden.
user bezeichnet den Login-Namen des Benutzers, für dessen Mailbox eine
Sperrdatei angelegt wird. maillock() geht davon aus, daß sich die
Mail-Dateien des Benutzers am vorgesehenen Speicherplatz befinden, wie
in maillock.h definiert.
Die folgenden Definitionen von Ergebniswerten sind in maillock.h ent-
halten:
#define LSUCCESS 0 /* Sperrdatei angelegt oder entfernt */
#define LNAMELEN 1 /* Name des Empfängers > 13 Zeichen */
#define LTMPLOCK 2 /* Erzeugung der tmp. Datei nicht möglich */
#define LTMPWRITE 3 /* Schreiben der PID in Sperrdatei nicht
möglich */
#define LMAXTRYS 4 /* Nach retrycnt Versuchen gescheitert */
#define LERROR 5 /* Überprüfe errno für den Grund */
#define LMANLOCK 6 /* Pflichtsperre konnte nicht gesetzt
werden */
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
maillock(3X) maillock(3X)
HINWEISE
mailunlock() entfernt nur die Sperrdatei, die durch den neuesten Auf-
ruf von maillock() angelegt wurde. Der Aufruf von maillock() für ver-
schiedene Benutzer, ohne dazwischenliegende Aufrufe von mailunlock(),
führt dazu, daß die zuerst angelegten Sperrdateien bestehen bleiben
und eventuell die weitere Auslieferung von Nachrichten verhindert
wird, solange der momentane Prozeß nicht terminiert.
DATEIEN
LIBDIR/llib-mail.ln
LIBDIR/libmail.a
/var/mail/*
/var/mail/*.lock
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98