pico-vfs provides low-level file IO "system calls", allowing many of the file manipulation APIs of stdio.h to be used.
System call | Availability | Standard |
---|---|---|
close |
✅ | IEEE Std 1003.1-1988 ("POSIX.1") |
fstat |
✅ | IEEE Std 1003.1-1988 ("POSIX.1") |
lseek |
✅ | IEEE Std 1003.1-1988 ("POSIX.1") |
open |
✅ | Version 6 AT&T UNIX |
read |
✅ | IEEE Std 1003.1-1990 ("POSIX.1") |
stat |
✅ | IEEE Std 1003.1-1988 ("POSIX.1") |
unlink |
✅ | POSIX.1-2008 |
write |
✅ | IEEE Std 1003.1-1990 ("POSIX.1") |
Note that many functions from stdio.h are available, but some do not behave as expected. Among the input/output functions that have been tested to work, those related to POSIX and the C standard are as follows:
Function | Availability | Standard |
---|---|---|
clearerr |
✅ | ISO/IEC 9899:1990 ("ISO C90") |
fflush |
✅ | ISO/IEC 9899:1990 ("ISO C90") and Single UNIX Specification ("SUSv3") |
fgetc |
✅ | ISO/IEC 9899:1990 ("ISO C90") |
fgetpos |
✅ | ISO/IEC 9899:1990 ("ISO C90") |
fgets |
✅ | ISO/IEC 9899:1999 ("ISO C99") |
fgetwc |
✅ | ISO/IEC 9899:1999 ("ISO C99") |
fgetws |
✅ | IEEE Std 1003.1-2001 ("POSIX.1") |
fileno |
✅ | ISO/IEC 9899:1990 ("ISO C90") |
fmemopen |
✅ | IEEE Std 1003.1-2008 ("POSIX.1") |
fopen |
✅ | ISO/IEC 9899:1990 ("ISO C90") |
fprintf |
✅ | ANSI X3.159-1989 ("ANSI C89") and ISO/IEC 9899:1999 ("ISO C99") |
fputc |
✅ | ISO/IEC 9899:1990 ("ISO C90") |
fputs |
✅ | ISO/IEC 9899:1990 ("ISO C90") |
fputwc |
✅ | ISO/IEC 9899:1999 ("ISO C99") |
fputws |
✅ | IEEE Std 1003.1-2001 ("POSIX.1") |
fread |
✅ | ISO/IEC 9899:1990 ("ISO C90") |
freopen |
✅ | ISO/IEC 9899:1990 ("ISO C90") |
fscanf |
✅ | ISO/IEC 9899:1999 ("ISO C99") |
fseek |
✅ | ISO/IEC 9899:1990 ("ISO C90") |
fsetpos |
✅ | ISO/IEC 9899:1990 ("ISO C90") |
ftell |
✅ | ISO/IEC 9899:1990 ("ISO C90") |
fwide |
✅ | ISO/IEC 9899:1999 ("ISO C99") |
fwprintf |
✅ | ISO/IEC 9899:1999 ("ISO C99") |
fwrite |
✅ | ISO/IEC 9899:1990 ("ISO C90") |
fwscanf |
✅ | ISO/IEC 9899:1999 ("ISO C99") |
getc |
✅ | ISO/IEC 9899:1990 ("ISO C90") |
getw |
✅ | ISO/IEC 9899:1990 ("ISO C90") |
mkstemp |
✅ | IEEE Std 1003.1-2008 ("POSIX.1") |
open_memstream |
✅ | IEEE Std 1003.1-2008 ("POSIX.1") |
perror |
✅ | ISO/IEC 9899:1999 ("ISO C99") |
putc |
✅ | ISO/IEC 9899:1990 ("ISO C90") |
remove |
✅ | ISO/IEC 9899:1990 ("ISO C90") and X/Open Portability Guide Issue 4, Version 2 ("XPG4.2") |
rename |
✅ | IEEE Std 1003.1-1988 ("POSIX.1") |
rewind |
✅ | ISO/IEC 9899:1990 ("ISO C90") |
setbuf |
✅ | ISO/IEC 9899:1990 ("ISO C90") |
setvbuf |
✅ | ISO/IEC 9899:1990 ("ISO C90") |
tmpfile |
❌ | ISO/IEC 9899:1990 ("ISO C90") |
tmpnam |
❌ | ISO/IEC 9899:1990 ("ISO C90") |
ungetc |
✅ | ISO/IEC 9899:1990 ("ISO C90") |
ungetwc |
✅ | ISO/IEC 9899:1999 ("ISO C99") |
vfprintf |
✅ | ANSI X3.159-1989 ("ANSI C89") and ISO/IEC 9899:1999 ("ISO C99") |
vfscanf |
✅ | ISO/IEC 9899:1999 ("ISO C99") |
vfwscanf |
✅ | ISO/IEC 9899:1999 ("ISO C99") |
For more information see the Newlib documentation.