Scroll to navigation

IOPERM(2) Linux-Programmierhandbuch IOPERM(2)

BEZEICHNUNG

ioperm - setzt Port-Zugriffsrechte für Eingabe/Ausgabe

ÜBERSICHT

#include <unistd.h> /* für Libc5 */
 
#include <stdio.h> /* für Glibc */
 
int ioperm(unsigned long from, unsigned long num, int turn_on);

BESCHREIBUNG

ioperm() setzt die Bits für die Port-Zugriffsrechte des aufrufenden Prozesses ab der Port-Adresse from für num Byte auf den Wert turn_on. Wenn der Wert von turn_on nicht Null ist, muss der aufrufende Prozess privilegiert sein ( CAP_SYS_RAWIO).
 
Nur die ersten 0x3ff E/A-Ports können auf diese Weise angegeben werden. Für weitere Ports muss der Systemaufruf iopl(2) verwendet werden.
 
Von fork(2) erzeugte Kindprozesse erben die Zugriffsrechte nicht. Die Rechte bleiben über Aufrufe von execve(2) erhalten. Das ist nützlich für die Gewährung von Port-Zugriffsberechtigungen für nicht privilegierte Programme.
 
Dieser Systemaufruf ist hauptsächlich für i386-Architektur gedacht. Auf vielen anderen Architekturen ist er nicht vorhanden oder gibt immer einen Fehler zurück.

RÜCKGABEWERT

Bei Erfolg wird Null zurückgegeben. Bei einem Fehler wird -1 zurückgegeben und errno entsprechend gesetzt.

FEHLER

EINVAL
ungültige Werte für from oder num
EIO
(auf PowerPC) Dieser Aufruf wird nicht unterstützt.
ENOMEM
Speicher aufgebraucht
EPERM
Der aufrufende Prozess hat unzureichende Rechte.

KONFORM ZU

ioperm() ist Linux-spezifisch und sollte nicht in Programmen verwendet werden, die portierbar sein sollen.

ANMERKUNGEN

Libc5 behandelt ioperm() als einen Systemaufruf und hat einen Prototyp in <unistd.h>. Glibc1 hat keinen Prototyp. Glibc2 hat einen Prototypen sowohl in <sys/io.h> als auch in <sys/perm.h>. Vermeiden Sie den Letzteren, weil er nur für i386 verfügbar ist.

SIEHE AUCH

iopl(2), capabilities(7)

KOLOPHON

Diese Seite ist Teil der Veröffentlichung 3.42 des Projekts Linux- man-pages. Eine Beschreibung des Projekts und Informationen, wie Fehler gemeldet werden können, finden sich unter http://www.kernel.org/doc/man-pages/.
 

ÜBERSETZUNG

Die deutsche Übersetzung dieser Handbuchseite wurde von Patrick Rother <krd@gulu.net> und Martin Eberhard Schauer <Martin.E.Schauer@gmx.de> erstellt.
 
Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.
 
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an <debian-l10n-german@lists.debian.org>.
15. Juni 2007 Linux