[libc-commits] [libc] 12aae7d - [libc][docs] Add doc for libc stdio functions

Michael Jones via libc-commits libc-commits at lists.llvm.org
Thu May 12 13:02:28 PDT 2022


Author: Michael Jones
Date: 2022-05-12T13:02:23-07:00
New Revision: 12aae7d9a685dfdc5c59b2003d13d088c20e697c

URL: https://github.com/llvm/llvm-project/commit/12aae7d9a685dfdc5c59b2003d13d088c20e697c
DIFF: https://github.com/llvm/llvm-project/commit/12aae7d9a685dfdc5c59b2003d13d088c20e697c.diff

LOG: [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

Added: 
    libc/docs/stdio.rst

Modified: 
    libc/docs/index.rst
    libc/docs/strings.rst

Removed: 
    


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


        


More information about the libc-commits mailing list