【发布时间】:2013-11-18 20:47:31
【问题描述】:
我试图通过使用系统调用 write() 在控制台上打印一些东西。到目前为止,这比我想象的要难。
函数保持简单:
void writeOutput(char a, int64_t b, uint8_t c) {
char bNew[]; // what should be the size of that array=
while(b != 0x0000000000000000) {
int leftover = b%10;
bNew[i] = intToChar(leftover);
b = b/10;
i++;
}
}
char intToChar(int num) {
return '0' + num;
}
a 应格式化为 char,b 为十进制数,c 为八进制数。
例如,一个可能的输入是: writeOutput('a', -0xffff, 17); // 输出是“a -65535 21”
打印的参数应该用空格分隔并以换行符终止到标准输出。另外,我试图做到这一点没有 sprintf-family 的功能。这让它有点棘手。
编辑:我的问题是:如何使用 write() 来做到这一点? (对不起,错过了!) 代码是在线的。 EDIT2:我的主要问题是不使用 sprintf 系列。我希望你能帮助我。
【问题讨论】:
-
那么,你的问题是什么?
-
你为什么不想使用
printf()? -
将参数转换成字符串,然后调用write。
-
@Kay:老实说,我一直在尝试实现这一点,但到目前为止我失败了。我希望有人可以帮助我。
-
您可以使用
sprintf创建字符串,然后将其传递给write。
标签: c console output system-calls