aio_error o sottoroutine aio_error64
La sottoroutine aio_error o aio_error64 include informazioni per la sottoroutine POSIX AIO aio_error (come definito in IEEE std 1003.1-2001) e la sottoroutine Legacy AIO aio_error.
POSIX AIO aio_error Sottoroutine
Finalità
Richiama lo stato di errore per un'operazione I/O asincrona.
Libreria
Libreria C standard (libc.a)
Sintassi
#include <aio.h>
int aio_error (aiocbp)
const struct aiocb *aiocbp;
Descrizione
La sottoroutine aio_error restituisce lo stato di errore associato alla struttura aiocb . Questa struttura è indicata dal parametro aiocbp . Lo stato di errore per un'operazione I/O asincrona è il valore di I/O sincrono errno che viene impostato dalla sottoroutine read, writeo fsync corrispondente. Se la sottoroutine non è stata ancora completata, lo stato di errore è uguale a EINPROGRESS.
Parametri
| Elemento | Descrizione |
|---|---|
| aiocbp | Punta alla struttura aiocb associata con l'operazione I/O. |
Struttura aiocb
int aio_fildes
off_t aio_offset
char *aio_buf
size_t aio_nbytes
int aio_reqprio
struct sigevent aio_sigevent
int aio_lio_opcodeAmbiente di esecuzione
Le sottoroutine aio_error e aio_error64 possono essere chiamate solo dall'ambiente del processo.
Valori di ritorno
Se l'operazione I/O asincrona è stata completata correttamente, la sottoroutine aio_error restituisce uno 0. In caso di esito negativo, viene restituito lo stato di errore (come descritto per le sottoroutine read, writee fsync ). Se l'operazione I/E asincrona non è ancora stata completata, viene restituito EINPROGRESS .
Codici di errore
| Elemento | Descrizione |
|---|---|
| INVAL | Il parametro aiocbp non fa riferimento ad un'operazione asincrona il cui stato di ritorno non è stato ancora richiamato. |
Sottoroutine AIO aio_error legacy
Scopo: richiama lo stato di errore di una richiesta I/O asincrona.
Libreria (sottoroutine AIO aio_error legacy)
Libreria C standard (libc.a)
Sintassi (sottoroutine AIO aio_error legacy)
Descrizione (sottoroutine AIO aio_error legacy)
La sottoroutine aio_error richiama lo stato di errore della richiesta asincrona associata al parametro handle . Lo stato di errore è il valore errno che viene impostato dall'operazione I/O corrispondente. Lo stato di errore è EINPROG se l'operazione I/O è ancora in corso.
La sottoroutine aio_error64 è simile alla sottoroutine aio_error , ma richiama lo stato di errore associato ad un blocco di controllo aiocb64 .
#define _AIO_AIX_SOURCE
#include <sys/aio.h>oppure, sulla riga comandi durante la compilazione, immettere:->xlc ... -D_AIO_AIX_SOURCE ... legacy_aio_program.c Parametri (sottoroutine AIO aio_error legacy)
| Elemento | Descrizione |
|---|---|
| puntatore | Il campo handle di una struttura blocco di controllo aio (aiocb o aiocb64) impostata da una precedente chiamata della sottoroutine aio_read, aio_read64, aio_write, aio_write64, lio_listio, aio_listio64 . Se viene inoltrata una posizione di memoria casuale, vengono restituiti risultati casuali. |
Struttura aiocb
struct aiocb
{
int aio_whence;
off_t aio_offset;
char *aio_buf;
ssize_t aio_return;
int aio_errno;
size_t aio_nbytes;
union {
int reqprio;
struct {
int version:8;
int priority:8;
int cache_hint:16;
} ext;
} aio_u1;
int aio_flag;
int aio_iocpfd;
aio_handle_t aio_handle;
}
#define aio_reqprio aio_u1.reqprio
#define aio_version aio_u1.ext.version
#define aio_priority aio_u1.ext.priority
#define aio_cache_hint aio_u1.ext.cache_hintAmbiente di esecuzione (sottoroutine AIO aio_error legacy)
Le sottoroutine aio_error e aio_error64 possono essere chiamate solo dall'ambiente del processo.
Valori di ritorno (sottoroutine AIO aio_error legacy)
| Elemento | Descrizione |
|---|---|
| 0 | Indica che l'operazione è terminata correttamente. |
| ANNULLATO | Indica che la richiesta I/O è stata annullata a causa di una chiamata di sottoroutine aio_cancel . |
| EINPROG | Indica che la richiesta I/O non è stata completata. Un valore errno descritto nelle routine secondarie aio_read , aio_writee lio_listio : indica che l'operazione non è stata accodata correttamente. Ad esempio, se la subroutine aio_read viene chiamata con un descrittore di file inutilizzabile, essa(aio_read) restituisce il valore -1 e imposta la variabile globale errno su EBADF. Una chiamata successiva della sottoroutine aio_error con l'handle della struttura del blocco di controllo aio (aiocb) non riuscito restituisce EBADF. Un valore errno dell'operazione I/O corrispondente: indica che l'operazione è stata avviata correttamente, ma l'operazione I/O effettiva ha avuto esito negativo. Ad esempio, richiamando la sottoroutine aio_write su un file ubicato in un file system completo viene restituito il valore 0, che indica che la richiesta è stata accodata correttamente. Tuttavia, quando l'operazione di I/O è completa (ossia, quando la sottoroutine aio_error non restituisce più EINPROG), la sottoroutine aio_error restituisce ENOSPC. Ciò indica che l'I/O ha avuto esito negativo. |