uwritec-Kernel-Service
Zweck
Ruft ein Zeichen aus einem Puffer ab, der von einem UIO -Strukturbeschrieben wird
Syntax
#include <sys/types.h>
#include <sys/errno.h>
#include <sys/uio.h> struct uio *uiop;
Parameter
| Element | Beschreibung |
|---|---|
| Uiop | Verweist auf eine UIO -Struktur, die den Puffer beschreibt, aus dem ein Zeichen gelesen werden soll |
Beschreibung
Der uwritec (Befehl) -Kernel-Service liest ein Zeichen aus einem Puffer, der von einem UIO -Strukturbeschrieben wird. Einheitentreiberroutinen der oberen Hälfte, insbesondere Zeicheneinheitentreiber, verwenden häufig den uwritec (Befehl) -Kernelservice, um Daten aus einem Benutzerbereich zu übertragen. Die uio_resid und uio_iovcnt -Felder in der Struktur UIO müssen größer als 0 sein, andernfalls wird ein Fehler zurückgegeben.
Die uio_segflgDas Feld in der Struktur UIO gibt an, ob die Daten aus einem Benutzer-oder Kerneldatenbereich gelesen werden. Dieses Feld gibt auch an, ob der Aufrufende speicherübergreifende Operationen erfordert und die erforderlichen speicherübergreifenden Deskriptoren bereitgestellt hat. Die Werte für dieses Flag sind in der Datei /usr/include/sys/uio.h definiert.
Wenn die Daten erfolgreich gelesen werden, werden die folgenden Felder in der Struktur UIO aktualisiert:
| Feld | Beschreibung |
|---|---|
| uio_iov | Gibt die Adresse des aktuellenioveczu verwendendes Element. |
| uio_xmem | Gibt die Adresse des aktuellenxmemzu verwendendes Element (für speicherübergreifende Kopie). |
| uio_iovcnt | Gibt die Anzahl der verbleibendeniovecElemente. |
| uio_iovdcnt | Gibt die Anzahl deriovecElemente bereits verarbeitet. |
| uio_offset | Gibt den Zeichenoffset auf der Einheit an, auf die Daten geschrieben werden. |
| uio_resid | Gibt die Gesamtzahl der Zeichen an, die in dem von der UIO -Struktur beschriebenen Datenbereich verbleiben. |
| iov_base | Gibt die Adresse des nächsten verfügbaren Zeichens in dem Datenbereich an, der durch den aktuelleniovecElement. |
| iov_len | Gibt die Länge der verbleibenden Daten in dem Puffer an, der durch die aktuelleiovecElement. |
Ausführungsumgebung
Der Kernel-Service uwritec (Befehl) kann nur über Prozessumgebung aufgerufen werden.
Rückgabewerte
Nach erfolgreichem Abschluss gibt der uwritec (Befehl) -Service das Zeichen zurück, an das er zum Abrufen gesendet wurde.
| Element | Beschreibung |
|---|---|
| -1 | Gibt an, dass der Puffer leer ist oder die Benutzerposition aus einem der folgenden drei Gründe ungültig ist:
|