diff --git a/libc/docs/index.rst b/libc/docs/index.rst --- a/libc/docs/index.rst +++ b/libc/docs/index.rst @@ -83,3 +83,4 @@ redirectors source_layout strings + 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,95 @@ +============================= +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 are the current focus (owner: michaelrj). When design documents +are available, they will be linked in the design column. Currently, the focus is +on the string variants of ``printf`` (e.g. ``sprintf``), since the ``FILE`` object +type is not yet complete. Once the ``FILE`` type is complete, adding the +additional flavors of printf will be trivial. + +============= ========= +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. Until the +``FILE`` type is fully implemented, these functions cannot be implemented. + +============= ========= +Function_Name Available +============= ========= +fopen YES +freopen +fclose YES +fflush +setbuf +setvbuf +ftell +fgetpos +fseek YES +fsetpos +rewind +tmpfile +============= ========= + +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