Scroll to navigation

iopl(2) System Calls Manual iopl(2)

NUME

iopl - modifică nivelul de privilegii de In/Ieș

BIBLIOTECA

Biblioteca C standard (libc, -lc)

REZUMAT

#include <sys/io.h>
[[depreciat]] int iopl(int level);

DESCRIERE

iopl() modifică nivelul de privilegii de intrare/ieșire al firului apelant, așa cum este specificat de cei doi biți mai puțin semnificativi din level.

Nivelul de privilegii In/Ieș pentru un fir normal este 0. Permisiunile sunt moștenite de la părinți la copii.

Acest apel este depreciat, este semnificativ mai lent decât ioperm(2) și este furnizat numai pentru serverele X mai vechi care necesită acces la toate cele 65536 de porturi de In/Ieș. Este destinată în principal arhitecturii i386. Pe multe alte arhitecturi nu există sau va returna întotdeauna o eroare.

VALOAREA RETURNATĂ

În caz de succes, se returnează zero. În caz de eroare, se returnează -1, iar errno este configurată pentru a indica eroarea.

ERORI

level este mai mare de 3.
Acest apel nu este implementat.
Firul apelant nu are privilegii suficiente pentru a apela iopl(); capacitatea CAP_SYS_RAWIO este necesară pentru a ridica nivelul de privilegii de In/Ieș peste valoarea sa curentă.

STANDARDE

iopl() este specific Linux și nu ar trebui să fie utilizat în programe care sunt destinate să fie portabile.

NOTE

glibc2 are un prototip atât în <sys/io.h> cât și în <sys/perm.h>. Evitați-l pe acesta din urmă, este disponibil doar pe i386.

Înainte de Linux 5.5, iopl() permitea firului să dezactiveze întreruperile în timp ce rulează la un nivel superior de privilegii In/Ieș. Acest lucru va duce probabil la blocarea sistemului și nu este recomandat.

Înainte de Linux 3.7, pe unele arhitecturi (cum ar fi i386), permisiunile were erau moștenite de copilul produs de fork(2) și erau păstrate pe execve(2). Acest comportament a fost modificat din greșeală în Linux 3.7 și nu va fi restabilit.

CONSULTAȚI ȘI

ioperm(2), outb(2), capabilities(7)

TRADUCERE

Traducerea în limba română a acestui manual a fost creată de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă Nicio RESPONSABILITATE.

Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.

5 februarie 2023 Pagini de manual de Linux 6.03