netlink(3)

NUME
netlink - macrocomenzi netlink

BIBLIOTECA
Biblioteca C standard (libc, -lc)

REZUMAT
#include <asm/types.h>
#include <linux/netlink.h>

int NLMSG_ALIGN(size_t len);
int NLMSG_LENGTH(size_t len);
int NLMSG_SPACE(size_t len);
void *NLMSG_DATA(struct nlmsghdr *nlh);
struct nlmsghdr *NLMSG_NEXT(struct nlmsghdr *nlh, int len);
int NLMSG_OK(struct nlmsghdr *nlh, int len);
int NLMSG_PAYLOAD(struct nlmsghdr *nlh, int len);

DESCRIERE
<linux/netlink.h> definește mai multe macrocomenzi standard pentru a accesa sau a crea o diagramă netlink. Acestea sunt similare în spirit cu macrocomenzile definite în cmsg(3) pentru datele auxiliare. Memoria tampon transmisă către și de la un soclu netlink ar trebui accesată folosind numai aceste macrocomenzi.

NLMSG_ALIGN()
    Rotunjește lungimea unui mesaj netlink pentru a-l alinia corespunzător.

NLMSG_LENGTH()
    Dată fiind lungimea sarcinii utile, len, această macrocomandă returnează lungimea aliniată care trebuie stocată în câmpul nlmsg_len din nlmsghdr.

NLMSG_SPACE()
    Returnează numărul de octeți pe care l-ar ocupa un mesaj netlink cu sarcina utilă de len.

NLMSG_DATA()
    Returnează un indicator la sarcina utilă asociată cu nlmsghdr transmis.

NLMSG_NEXT()
    Obține următorul nlmsghdr dintr-un mesaj compus din mai multe părți. Apelantul trebuie să verifice dacă nlmsghdr curent nu a avut fanionul NLMSG_DONE, această funcție nu returnează NULL la sfârșit. Argumentul len este o valoare l care conține lungimea rămasă a memoriei tampon a mesajului. Această macrocomandă îl decrementează cu lungimea antetului mesajului.

NLMSG_OK()
    Returnează „true” dacă mesajul netlink nu este trunchiat și are o formă adecvată pentru analizare.

NLMSG_PAYLOAD()
    Returnează lungimea sarcinii utile asociate cu nlmsghdr.

STANDARDE
Aceste macrocomenzi sunt extensii Linux nestandardizate.

NOTE
Adesea este mai bine să folosiți netlink prin libnetlink decât prin interfața de nivel scăzut a nucleului.

CONSULTAȚI ȘI
libnetlink(3), netlink(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 (https://www.gnu.org/licenses/gpl-3.0.html) 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.