rmprojdb, Subroutine
Zweck
Entfernt die angegebene Projektdefinition aus der angegebenen Projektdatenbank.
Bibliothek
Bibliothek libaacct.a
Syntax
<sys/aacct.h>
rmprojdb(void *handle, struct project *project, int flag)
Beschreibung
Die Subroutine rmprojdb entfernt die in der Strukturprojektvariablen gespeicherte Projektdefinition aus dem Projekt, das durch den Parameter Kennung benannt wird. Die Projektdatenbank muss initialisiert werden, bevor diese Subroutine aufgerufen wird. Zu diesem Zweck werden die Subroutinen Projdballoc und Projdbfinit bereitgestellt. Wenn die bereitgestellte Projektdefinition in der angegebenen Projektdatenbank nicht vorhanden ist, gibt die Subroutine rmprojdb den Wert -1 zurück und setzt die Fehlernummer auf den Wert ENOENT.
- PROJ_NAME-Gibt an, dass die bereitgestellte Projektdefinition nur den Projektnamen enthält.
- PROJ_NUM-Gibt an, dass die angegebene Projektdefinition nur die Projektnummer enthält.
Der Projektdatenbank ist ein interner Status (d. h. das aktuelle Projekt) zugeordnet. Wenn die Projektdatenbank initialisiert wird, ist das aktuelle Projekt das erste Projekt in der Datenbank. Die Subroutine rmprojdb entfernt das benannte Projekt und positioniert das interne aktuelle Projekt auf die erste Projektdefinition.
Parameter
| Element | Beschreibung |
|---|---|
| Handle | Zeiger auf Projektdatenbankkennung. |
| project | Zeiger auf eine Projektstruktur, die die Definition des hinzuzufügenden Projekts enthält. |
| flag | Ganzzahliges Flag, das angibt, ob der Name oder die Nummer des Projekts angegeben wird. |
Sicherheit
Nur für privilegierte Benutzer. Die Berechtigung kann auf Benutzer ohne Rootberechtigung erweitert werden, indem einem Benutzer die Berechtigung CAP_AACCT erteilt wird.
Rückgabewerte
| Element | Beschreibung |
|---|---|
| 0 | Erfolg |
| -1 | Fehlschlag |
Fehlercodes
| Element | Beschreibung |
|---|---|
| ENOENT | Projektdefinition ist nicht vorhanden |
| EPERM | Zugriff verweigert. Der Benutzer ist kein privilegierter Benutzer. |
| EINVAL | Der übergebene Zeiger ist NULL oder der Parameter Markierung enthält einen ungültigen Wert. |