gpt4 book ai didi

c - 在 C 中 write 的 printf 等价物是什么?

转载 作者:太空宇宙 更新时间:2023-11-04 00:50:17 25 4
gpt4 key购买 nike

你是怎么做到的:

printf("I would like %d tomatoes", numTomatoes);

与:

write(STDOUT, "HOW?", 4);

是否有某种类型的预处理使它成为一个字符数组,然后我可以找到长度并将其打印出来?

上下文:我需要在信号处理程序中使用 write 而不是 printf。

最佳答案

要获取格式化字符串,您可以使用sprintf/snprintf;

char buffer[0x1000];
size_t length = snprintf(buffer, sizeof(buffer), "I would like %d tomatoes", numTomatoes);
write(STDOUT_FILENO, buffer, length);

编辑:如果您对较大的缓冲区大小感到困扰,那么您可以(在现代 C99 中)执行以下操作来首先确定必要的缓冲区大小:

size_t length = snprintf(NULL, 0, "I would like %d tomatoes", numTomatoes);
char buffer[length];
snprintf(buffer, length, "I would like %d tomatoes", numTomatoes);
write(STDOUT_FILENO, buffer, length);

关于c - 在 C 中 write 的 printf 等价物是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21437961/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com