Low level input and output operations. More...
Defines | |
| #define | _O_RDONLY 0x0000 |
| #define | _O_WRONLY 0x0001 |
| #define | _O_RDWR 0x0002 |
| #define | _O_APPEND 0x0008 |
| #define | _O_CREAT 0x0100 |
| #define | _O_TRUNC 0x0200 |
| #define | _O_EXCL 0x0400 |
| #define | _O_TEXT 0x4000 |
| #define | _O_BINARY 0x8000 |
| #define | IOCTL_GETSTATUS 0x0001 |
| #define | IOCTL_SETSTATUS 0x0002 |
| #define | IOCTL_SETBUFFERMODE 0x0003 |
| #define | IOCTL_GETBUFFERMODE 0x0004 |
| #define | IOCTL_GETOUTBUFSIZE 0x0005 |
| #define | IOCTL_SETOUTBUFSIZE 0x0006 |
| #define | IOCTL_GETINBUFSIZE 0x0007 |
| #define | IOCTL_SETINBUFSIZE 0x0008 |
| #define | IOCTL_FLUSHOUTBUF 0x0009 |
| Flush the output buffer. | |
| #define | IOCTL_GETFILESIZE 0x000A |
| Return the number of bytes currently available in the input buffer. | |
| #define | IOCTL_GETOUTBUFCOUNT 0x000B |
| Return the number of bytes currently available in the input buffer. | |
| #define | IOCTL_GETINBUFCOUNT 0x000C |
| Return the number of bytes currently available in the output buffer. | |
Functions | |
| int | _close (int fd) |
| Close a file, device or socket. | |
| long | _filelength (int fd) |
| Return the length of a file. | |
| int | _ioctl (int fd, int cmd, void *data) |
| Perform device specific control functions. | |
| int | _open (const char *name, int mode) |
| Open a file. | |
| int | _read (int fd, void *buffer, unsigned int count) |
| Read data from a file, device or socket. | |
| int | _seek (int fd, long offset, int origin) |
| Move read/write position of a file. | |
| long | _tell (int fd) |
| Return the read/write position of a stream. | |
| int | _write (int fd, const void *data, unsigned int count) |
| Write data to a file, device or socket. | |
| int | _write_P (int fd, PGM_P data, unsigned int count) |
| Writes data from program space to a file, device or socket. | |
Low level input and output operations.
#include <io.h>
Standard C runtime file interface to Nut/OS devices.
| #define _O_RDONLY 0x0000 |
Read only.
Referenced by _fmode(), HttpSsiHandler(), HttpSsiIncludeHandler(), MediaTypeHandlerBinary(), NutFtpTransferFile(), PhatDirOpen(), PhatDirRemove(), and UsartOpen().
| #define _O_WRONLY 0x0001 |
Write only.
Referenced by _fmode(), NutInit(), UsartOpen(), and VsCodecOpen().
| #define _O_RDWR 0x0002 |
Read and write.
Referenced by _fmode(), main(), NutRegisterOwiBus_Uart(), PerCiDump(), PerCiInit(), PerCiOpen(), and PhatDirCreate().
| #define _O_APPEND 0x0008 |
Start writing at the end.
Referenced by _fmode(), and PhatFileOpen().
| #define _O_CREAT 0x0100 |
Create file if it does not exist.
Referenced by _fmode(), NutFtpTransferFile(), NutInit(), PerCiInit(), PhatDirCreate(), and PhatFileOpen().
| #define _O_TRUNC 0x0200 |
Truncate file if it exists.
Referenced by _fmode(), NutFtpTransferFile(), NutInit(), PerCiInit(), and PhatFileOpen().
| #define _O_EXCL 0x0400 |
Open only if it does not exist.
Referenced by PhatDirCreate(), and PhatFileOpen().
| #define _O_BINARY 0x8000 |
Raw mode.
Referenced by _fmode(), AceOpen(), HttpSsiHandler(), HttpSsiIncludeHandler(), main(), MediaTypeHandlerBinary(), NutFtpTransferFile(), NutRegisterOwiBus_Uart(), PerCiDump(), PerCiInit(), PerCiOpen(), TermOpen(), UartAvrOpen(), and UsartOpen().
| #define IOCTL_GETSTATUS 0x0001 |
| #define IOCTL_SETSTATUS 0x0002 |
| #define IOCTL_SETBUFFERMODE 0x0003 |
| #define IOCTL_GETBUFFERMODE 0x0004 |
| #define IOCTL_GETOUTBUFSIZE 0x0005 |
| #define IOCTL_SETOUTBUFSIZE 0x0006 |
| #define IOCTL_GETINBUFSIZE 0x0007 |
| #define IOCTL_SETINBUFSIZE 0x0008 |
| #define IOCTL_FLUSHOUTBUF 0x0009 |
Flush the output buffer.
Currently not provided by any known device.
| #define IOCTL_GETFILESIZE 0x000A |
Return the number of bytes currently available in the input buffer.
Referenced by _filelength(), and NutTcpDeviceIOCtl().
| #define IOCTL_GETOUTBUFCOUNT 0x000B |
Return the number of bytes currently available in the input buffer.
Referenced by NutTcpDeviceIOCtl().
| #define IOCTL_GETINBUFCOUNT 0x000C |
Return the number of bytes currently available in the output buffer.
Referenced by NutTcpDeviceIOCtl().
| int _close | ( | int | fd | ) |
Close a file, device or socket.
The calling thread may be suspended until all buffered output data has been written.
| fd | Descriptor of a previously opened file, device or connected socket. |
References _NUTDEVICE::dev_close, _NUTFILE::nf_dev, NULL, NUTASSERT, and _NUTVIRTUALDEVICE::vdv_write.
Referenced by fclose(), HttpSsiHandler(), HttpSsiIncludeHandler(), MediaTypeHandlerBinary(), NutFtpTransferFile(), PerCiClose(), PerCiDump(), PerCiInit(), and PerCiOpen().
| long _filelength | ( | int | fd | ) |
Return the length of a file.
| fd | Descriptor of a previously opened file, device or connected socket. |
References _NUTDEVICE::dev_size, EBADF, errno, IOCTL_GETFILESIZE, _NUTFILE::nf_dev, NULL, NUTASSERT, and _NUTVIRTUALDEVICE::vdv_ioctl.
Referenced by HttpSsiProcessFile(), kbhit(), NutHttpProcessAsp(), PerCiDump(), and PerCiOpen().
| int _ioctl | ( | int | fd, |
| int | cmd, | ||
| void * | data | ||
| ) |
Perform device specific control functions.
Check the specific device driver for a list of supported control functions.
| fd | Descriptor of a previously opened device or connected socket. |
| cmd | Requested control function. |
| data | Points to a buffer that contains any data required for the given control function or receives data from that function. |
References _NUTDEVICE::dev_ioctl, _NUTFILE::nf_dev, NULL, NUTASSERT, and _NUTVIRTUALDEVICE::vdv_ioctl.
Referenced by InitDebugDevice(), IpcpLowerDown(), main(), NutChatSend(), NutNetIfConfig2(), and NutRegisterOwiBus_Uart().
| int _open | ( | const char * | name, |
| int | mode | ||
| ) |
Open a file.
| name | The name of a registered device, optionally followed by a colon and a filename. |
| mode | Operation mode. May be any of the following:
|
References _NUTDEVICE::dev_open, ENOENT, errno, NULL, NUTASSERT, and NutDeviceLookup().
Referenced by fopen(), freopen(), HttpSsiHandler(), HttpSsiIncludeHandler(), main(), MediaTypeHandlerBinary(), NutFtpTransferFile(), NutRegisterOwiBus_Uart(), PerCiDump(), PerCiInit(), and PerCiOpen().
| int _read | ( | int | fd, |
| void * | buffer, | ||
| unsigned int | count | ||
| ) |
Read data from a file, device or socket.
| fd | Descriptor of a previously opened file, device or connected socket. |
| buffer | Pointer to the buffer that receives the data. |
| count | Maximum number of bytes to read. |
References _NUTDEVICE::dev_read, _NUTFILE::nf_dev, NULL, NUTASSERT, and _NUTVIRTUALDEVICE::vdv_read.
| int _seek | ( | int | fd, |
| long | offset, | ||
| int | origin | ||
| ) |
Move read/write position of a file.
| fd | Descriptor of a previously opened file, device or connected socket. |
| offset | Number of bytes from initial position. |
| origin | Initial position to seek from. |
References IOCTL_ARG3::arg1, IOCTL_ARG3::arg2, IOCTL_ARG3::arg3, _NUTDEVICE::dev_ioctl, EINVAL, errno, FS_FILE_SEEK, _NUTFILE::nf_dev, NULL, and NUTASSERT.
Referenced by fseek(), HttpSsiProcessFile(), PerCiFlush(), PerCiOpen(), and PerCiWrite().
| long _tell | ( | int | fd | ) |
Return the read/write position of a stream.
| fd | Descriptor of a previously opened file, device or connected socket. |
References IOCTL_ARG3::arg1, IOCTL_ARG3::arg2, IOCTL_ARG3::arg3, _NUTDEVICE::dev_ioctl, EINVAL, errno, FS_FILE_SEEK, _NUTFILE::nf_dev, NULL, NUTASSERT, and SEEK_CUR.
Referenced by ftell().
| int _write | ( | int | fd, |
| const void * | data, | ||
| unsigned int | count | ||
| ) |
Write data to a file, device or socket.
| fd | Descriptor of a previously opened file, device or connected socket. |
| data | Pointer to data in program space to be written. |
| count | Number of bytes to write. |
References _NUTDEVICE::dev_write, _NUTFILE::nf_dev, NULL, NUTASSERT, and _NUTVIRTUALDEVICE::vdv_write.
| int _write_P | ( | int | fd, |
| PGM_P | data, | ||
| unsigned int | count | ||
| ) |
Writes data from program space to a file, device or socket.
Similar to _write() except that the data is located in program memory.
| fd | Descriptor of a previously opened file, device or connected socket. |
| data | Pointer to data in program space to be written. |
| count | Number of bytes to write. |
References _NUTDEVICE::dev_write_P, _NUTFILE::nf_dev, NULL, NUTASSERT, and _NUTVIRTUALDEVICE::vdv_write_P.