aio_write man page on SmartOS

Man page or keyword search:  
man Server   16655 pages
apropos Keyword Search (all sections)
Output format
SmartOS logo
[printable version]


       aio_write - asynchronous write to a file

       #include <aio.h>

       int aio_write(struct aiocb *aiocbp);

       The   aio_write()   function   allows  the  calling  process  to	 write
       aiocbp→aio_nbytes to the file associated	 with  aiocbp→aio_fildes  from
       the buffer pointed to by aiocbp→aio_buf. The function call returns when
       the write request has been initiated or, at a minimum,  queued  to  the
       file or device. If _POSIX_PRIORITIZED_IO is defined and prioritized I/O
       is supported for this file, then the asynchronous operation is  submit‐
       ted at a priority equal to the scheduling priority of the process minus
       aiocbp→aio_reqprio.   The  aiocbp  may  be  used	 as  an	 argument   to
       aio_error(3C) and aio_return(3C) in order to determine the error status
       and return status, respectively, of the asynchronous operation while it
       is proceeding.

       The aiocbp argument points to an aiocb structure. If the buffer pointed
       to by aiocbp→aio_buf or the control block pointed to by aiocbp  becomes
       an  illegal  address  prior  to	asynchronous  I/O completion, then the
       behavior is undefined.

       If O_APPEND is not set for the file  descriptor	aio_fildes,  then  the
       requested operation takes place at the absolute position in the file as
       given by aio_offset, as if lseek(2) were called	immediately  prior  to
       the  operation with an offset equal to aio_offset and a whence equal to
       SEEK_SET. If O_APPEND is set for the file descriptor, write  operations
       append  to  the file in the same order as the calls were made.  After a
       successful call to enqueue an asynchronous I/O operation, the value  of
       the file offset for the file is unspecified.

       The  aiocbp→aio_sigevent	 structure defines what asynchronous notifica‐
       tion is to occur when the asynchronous operation completes,  as	speci‐
       fied in signal.h(3HEAD).

       The aiocbp→aio_lio_opcode field is ignored by aio_write().

       Simultaneous  asynchronous  operations  using  the  same aiocbp produce
       undefined results.

       If _POSIX_SYNCHRONIZED_IO is defined and synchronized I/O is enabled on
       the  file associated with aiocbp→aio_fildes, the behavior of this func‐
       tion shall be according to the definitions  of  synchronized  I/O  data
       integrity completion and synchronized I/O file integrity completion.

       For  any	 system	 action that changes the process memory space while an
       asynchronous I/O is outstanding to the address range being changed, the
       result of that action is undefined.

       For  regular files, no data transfer will occur past the offset maximum
       established   in	  the	open   file   description   associated	  with

       The  aio_write()	 function  returns 0 to the calling process if the I/O
       operation is successfully queued; otherwise, the	 function  returns  −1
       and sets errno to indicate the error.

       The  aio_write() function will fail if:

		 The  requested	 asynchronous I/O operation was not queued due
		 to system resource limitations.

       Each of the following conditions may be detected synchronously  at  the
       time  of the call to aio_write(), or asynchronously. If any of the con‐
       ditions below are  detected  synchronously,  the	 aio_write()  function
       returns	−1  and	 sets  errno to the corresponding value. If any of the
       conditions below are detected asynchronously, the return status of  the
       asynchronous  operation is set to −1, and the error status of the asyn‐
       chronous operation will be set to the corresponding value.

		 The aiocbp→aio_fildes argument is not a valid file descriptor
		 open for writing.

		 The  file offset value implied by aiocbp->aio_offset would be
		 invalid,  aiocbp->aio_reqprio	is  not	 a  valid  value,   or
		 aiocbp→aio_nbytes is an invalid value.

       In the case that the aio_write() successfully queues the I/O operation,
       the return status of the asynchronous operation will be one of the val‐
       ues  normally  returned by the write(2) function call. If the operation
       is successfully queued but is subsequently canceled  or	encounters  an
       error,  the error status for the asynchronous operation contains one of
       the values normally set by the write() function call,  or  one  of  the

		    The	  aiocbp→aio_fildes  argument  is  not	a  valid  file
		    descriptor open for writing.

		    The file offset value implied by aiocbp->aio_offset	 would
		    be invalid.

		    The	 requested  I/O	 was canceled before the I/O completed
		    due to an explicit aio_cancel(3C) request.

       The  following  condition  may  be  detected  synchronously  or	 asyn‐

		The  file is a regular file, aiobcp→aio_nbytes is greater than
		0 and the starting offset in aiobcp→aio_offset is at or beyond
		the  offset  maximum  in  the open file description associated
		with aiocbp→aio_fildes.

       The aio_write() function has a transitional interface for  64-bit  file
       offsets.	 See lf64(5).

       See attributes(5) for descriptions of the following attributes:

       │Interface Stability │ Committed		│
       │MT-Level	    │ MT-Safe		│
       │Standard	    │ See standards(5). │

       aio_cancel(3C),	aio_error(3C),	aio_read(3C), aio_return(3C), lio_lis‐
       tio(3C), close(2), _Exit(2), fork(2), lseek(2), write(2), aio.h(3HEAD),
       signal.h(3HEAD), attributes(5), lf64(5), standards(5)

				  Feb 5, 2008			 AIO_WRITE(3C)

List of man pages available for SmartOS

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
Vote for polarhome
Free Shell Accounts :: the biggest list on the net