diff --git a/libc/docs/index.rst b/libc/docs/index.rst --- a/libc/docs/index.rst +++ b/libc/docs/index.rst @@ -84,3 +84,4 @@ source_layout strings runtimes_build + stdio diff --git a/libc/docs/stdio.rst b/libc/docs/stdio.rst new file mode 100644 --- /dev/null +++ b/libc/docs/stdio.rst @@ -0,0 +1,98 @@ +============================= +StdIO Functions in LLVM-libc +============================= + +------- +Summary +------- + +This document tracks the status of the implementation of stdio functions in LLVM +Libc. + +--------------- +Source location +--------------- + +- The main source for string functions is located at: + ``libc/src/stdio`` with subdirectories for internal implementations. + +--------------------- +Implementation Status +--------------------- + +Formatted Input/Output Functions +================================ + +These functions take in format strings and arguments of various types and +convert either to or from those arguments. These functions are the current focus +(owner: michaelrj). + +============= ========= +Function_Name Available +============= ========= +\*printf WIP +\*scanf +============= ========= + +``FILE`` Access +=============== + +These functions are used to interact with the ``FILE`` object type, which is an +I/O stream, often used to represent a file on the host's hard drive. Currently +the ``FILE`` object is only available on linux. + +============= ========= +Function_Name Available +============= ========= +fopen YES +freopen +fclose YES +fflush YES +setbuf +setvbuf +ftell +fgetpos +fseek YES +fsetpos +rewind +tmpfile +clearerr YES +feof YES +ferror YES +flockfile YES +funlockfile YES +============= ========= + +Operations on system files +========================== + +These functions operate on files on the host's system, without using the +``FILE`` object type. They only take the name of the file being operated on. + +============= ========= +Function_Name Available +============= ========= +remove +rename +tmpnam +============= ========= + +Unformatted ``FILE`` Input/Output Functions +=========================================== + +The ``gets`` function was removed in C11 for having no bounds checking and +therefor being impossible to use safely. + +============= ========= +Function_Name Available +============= ========= +(f)getc +fgets +getchar +fread YES +(f)putc +(f)puts +putchar +fwrite YES +ungetc +============= ========= diff --git a/libc/docs/strings.rst b/libc/docs/strings.rst --- a/libc/docs/strings.rst +++ b/libc/docs/strings.rst @@ -38,7 +38,7 @@ ============= ========= -Function_Name Available +Function Name Available ============= ========= bzero YES bcmp YES