| ============================= | 
 | 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 | 
 | =============  ========= |