你是怎么做到的:
printf("I would like %d tomatoes", numTomatoes);通过以下方式:
write(STDOUT, "HOW?", 4);是否有某种类型的预处理,使其成为一个字符数组,然后我可以找到长度并打印出来?
上下文:我需要在信号处理程序中使用写而不是printf。
发布于 2014-01-29 17:14:15
要获得格式化字符串,可以使用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);https://stackoverflow.com/questions/21437961
复制相似问题