26fc59bc35
If LIBC_NL_ARGMAX is too large, the stack usage of printf family functions will increase Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
110 lines
3.5 KiB
Plaintext
110 lines
3.5 KiB
Plaintext
#
|
|
# For a description of the syntax of this configuration file,
|
|
# see the file kconfig-language.txt in the NuttX tools repository.
|
|
#
|
|
|
|
menu "Standard C I/O"
|
|
|
|
config STDIO_DISABLE_BUFFERING
|
|
bool "Disable STDIO Buffering"
|
|
depends on FILE_STREAM
|
|
default n
|
|
---help---
|
|
Tiny systems may need to disable all support for I/O buffering in
|
|
order to minimize the memory footprint.
|
|
|
|
NOTE that even if STDIO buffering is enabled, you can still disable
|
|
buffering by setting CONFIG_STDIO_BUFFER_SIZE=0 or dynamically
|
|
through the setvbuf() interface. In this case, however, memory
|
|
used for buffering will be eliminated, of course, but there will be
|
|
no reduction in static code size. Only setting
|
|
CONFIG_STDIO_DISABLE_BUFFERING will reduce static code size.
|
|
|
|
The setvbuf() interface is not available if
|
|
CONFIG_STDIO_DISABLE_BUFFERING is selected.
|
|
|
|
if !STDIO_DISABLE_BUFFERING
|
|
|
|
config STDIO_BUFFER_SIZE
|
|
int "STDIO buffer size"
|
|
default 64
|
|
---help---
|
|
Size of buffers using within the C buffered I/O interfaces (printf,
|
|
putchar, fwrite, etc.). This function sets the initial I/O buffer
|
|
size. Zero disables I/O buffering initially. Any buffer size may
|
|
be subsequently modified using setvbuf().
|
|
|
|
config STDIO_LINEBUFFER
|
|
bool "STDIO line buffering"
|
|
default y
|
|
---help---
|
|
Sets the default behavior to flush buffered I/O whenever a newline
|
|
character is found in the output data stream. This setting just
|
|
sets the initial default behavior of all streams. The behavior of
|
|
an individual stream can be changed via setvbuf().
|
|
|
|
endif # !STDIO_DISABLE_BUFFERING
|
|
|
|
config NUNGET_CHARS
|
|
int "Number unget() characters"
|
|
default 2
|
|
---help---
|
|
Number of characters that can be buffered by ungetc() (Only if
|
|
FILE_STREAM equals y)
|
|
|
|
config LIBC_FLOATINGPOINT
|
|
bool "Enable floating point in printf"
|
|
default !DEFAULT_SMALL && ARCH_FPU
|
|
depends on !LIBM_NONE
|
|
---help---
|
|
By default, floating point support in printf, sscanf, etc. is
|
|
disabled. This option will enable floating point support.
|
|
|
|
config LIBC_LONG_LONG
|
|
bool "Enable long long support in printf"
|
|
default !DEFAULT_SMALL
|
|
---help---
|
|
Enables support for long long formats in printf, sscanf, etc. is
|
|
enabled. This is enabled by default but if you are trying to
|
|
reduce the FLASH footprint, then disabling this feature is one
|
|
option. The FLASH saves comes not from disabling the long long
|
|
formats, but rather from omitting the large long long arithmetic
|
|
libraries that will be drawn into the build if long long support
|
|
is enabled.
|
|
|
|
NOTE: This setting has no effect if the underlying architecture
|
|
cannot support long long types
|
|
|
|
config LIBC_NUMBERED_ARGS
|
|
bool "Enable numbered arguments in printf"
|
|
default n
|
|
---help---
|
|
Enables support for numbered arguments in printf.
|
|
|
|
printf("%3$s %3$s %1$s %2$s\n", "1", "2", "3"); --> "3 3 1 2"
|
|
printf("%3$*2$.*1$f\n", 4, 8, 1.234567); --> " 1.2346"
|
|
|
|
Attention: Mixing of numbered and sequential arguments in one
|
|
format string is not allowed according to POSIX.
|
|
|
|
config LIBC_NL_ARGMAX
|
|
int "Maximum number of numbered arguments for printf"
|
|
default 9
|
|
range 9 999999
|
|
depends on LIBC_NUMBERED_ARGS
|
|
---help---
|
|
Applies only if there are numbered arguments in your format string.
|
|
The number of sequential arguments isn't affected.
|
|
Will be copied into stdio POSIX macro NL_ARGMAX.
|
|
|
|
Attention: Increasing this value will increase stack usage
|
|
of printf.
|
|
|
|
config LIBC_SCANSET
|
|
bool "Scanset support"
|
|
default n
|
|
---help---
|
|
Add scanset support to sscanf().
|
|
|
|
endmenu #Standard C I/O
|