c - 独立可移植的snprintf(),独立于标准库?

标签 c embedded cross-platform portability printf

我正在使用 NO C-runtime 为目标平台编写代码。 没有 stdlib没有 stdio。我需要像 snprintf 这样的字符串格式化函数,但它应该能够在没有任何依赖项的情况下运行,甚至是 C 库。

最多只能依赖于我提供的内存分配函数

我检查了 Trio 但它需要 stdio.h header。我不能用这个。

编辑

目标平台:PowerPC64 自制操作系统(不是我做的)。但是,该库不应依赖于特定于操作系统的内容。

编辑2

我已经尝试了一些第 3 方开源库,例如 Trio(http://daniel.haxx.se/projects/trio/)、snprintf 和 miniformat(https://bitbucket.org/jj1/miniformat/src),但它们都依赖于 string.h、stdio.h 或(更糟糕的是)stdlib.h。如果已经存在我自己的实现,我不想编写它,因为那样会浪费时间并且容易出错。

最佳答案

尝试使用 uclibc 中的 snprintf 实现。这可能具有最少的依赖性。一些挖掘表明 snprintf 是根据 vsnprintf 实现的,而 vsnprintf 是根据 vfprintf 实现的(奇怪的是),它使用伪造的“流”来写入字符串。

这是一个指向代码的指针:http://git.uclibc.org/uClibc/tree/libc/stdio/_vfprintf.c

此外,快速谷歌搜索也发现了这个:

希望其中一个适合您的目的。这可能不是完整列表。

这里有一个不同的列表: http://trac.eggheads.org/browser/trunk/src/compat/README.snprintf?rev=197

关于c - 独立可移植的snprintf(),独立于标准库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19412780/

相关文章:

c++ - C/C++ 中浮点常量的紧凑无损表示

java-me - 现在在哪里使用 jme/j2me?

c++ - 几次访问后,mmap 因无法打开/dev/mem 而死

PHP Echo 换行符

c 打印包含结构的树

c - AVL树示例解释

unit-testing - 嵌入式C++系统中的持续集成/单元测试

delphi - 如何从枚举填充内存表?

java - 运行一个在 windows 和 Linux 平台上运行的 Java 开发的 web 项目

c - 通过地址获取函数名