ureadc-Kernel-Service
Zweck
Schreibt ein Zeichen in einen Puffer, der von einem UIO -Strukturbeschrieben wird.
Syntax
Parameter
| Element | Beschreibung |
|---|---|
| c | Gibt ein Zeichen an, das in den Puffer geschrieben werden soll |
| Uiop | Verweist auf eine UIO -Struktur, die den Puffer beschreibt, in dem ein Zeichen platziert werden soll |
Beschreibung
Der Ureadc -Kernel-Service schreibt ein Zeichen in einen Puffer, der von einem UIO -Strukturbeschrieben wird. Einheitentreiberroutinen für die obere Hälfte, insbesondere Zeicheneinheitentreiber, verwenden häufig den Ureadc -Kernelservice, um Daten in einen Benutzerbereich zu übertragen.
Die uio_resid und uio_iovcnt -Felder in der UIO -Struktur, die den Datenbereich beschreiben, müssen größer als 0 sein. Sind diese Felder nicht größer als 0, wird ein Fehler zurückgegeben. Die uio_segflgMit dem Feld in der Struktur UIO wird angegeben, ob die Daten in einen Benutzer-oder Kerneldatenbereich geschrieben werden. Sie wird auch verwendet, um anzugeben, ob der Aufrufende speicherübergreifende Operationen erfordert und die erforderlichen speicherübergreifenden Deskriptoren bereitgestellt hat. Die Werte für das Flag sind in der Datei /usr/include/sys/uio.h definiert.
Wenn die Daten erfolgreich geschrieben wurden, werden die folgenden Felder in der Struktur UIO aktualisiert:
| Feld | Beschreibung |
|---|---|
| uio_iov | Gibt die Adresse der aktuellenioveczu verwendendes Element. |
| uio_xmem | Gibt die Adresse der 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, von dem Daten gelesen werden. |
| uio_resid | Gibt die Gesamtzahl der Zeichen an, die in dem Datenbereich verbleiben, der von deruioStruktur. |
| 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 des verbleibenden Datenbereichs in dem Puffer an, der von der aktuelleniovecElement. |
Ausführungsumgebung
Der Kernel-Service Ureadc kann nur über Prozessumgebung aufgerufen werden.
Rückgabewerte
| Element | Beschreibung |
|---|---|
| 0 | Erfolgreiche Ausführung. |
| ENOMEM | Gibt an, dass kein Platz im Puffer vorhanden ist |
| EFAULT | Gibt an, dass die Benutzerposition aus einem der folgenden Gründe nicht gültig ist:
|