From 12aae7d9a685dfdc5c59b2003d13d088c20e697c Mon Sep 17 00:00:00 2001 From: Michael Jones Date: Thu, 14 Apr 2022 14:32:16 -0700 Subject: [PATCH] [libc][docs] Add doc for libc stdio functions This patch adds a document describing the status of the string functions in LLVM-libc. Reviewed By: sivachandra, lntue Differential Revision: https://reviews.llvm.org/D123823 --- libc/docs/index.rst | 1 + libc/docs/stdio.rst | 98 +++++++++++++++++++++++++++++++++++++++++++ libc/docs/strings.rst | 2 +- 3 files changed, 100 insertions(+), 1 deletion(-) create mode 100644 libc/docs/stdio.rst diff --git a/libc/docs/index.rst b/libc/docs/index.rst index a0629fe51589..835e2fb17e0b 100644 --- a/libc/docs/index.rst +++ b/libc/docs/index.rst @@ -84,3 +84,4 @@ Other Interesting Documentation source_layout strings runtimes_build + stdio diff --git a/libc/docs/stdio.rst b/libc/docs/stdio.rst new file mode 100644 index 000000000000..5467aac5060c --- /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 index bcf650d98125..df0f6e1ffa18 100644 --- a/libc/docs/strings.rst +++ b/libc/docs/strings.rst @@ -38,7 +38,7 @@ Primary memory functions ============= ========= -Function_Name Available +Function Name Available ============= ========= bzero YES bcmp YES