[英]Is there a function to count number of parameters for a printf format string?
[英]Printf not replacing format string parameters
我正在尝试做一项作业,涉及在minix中修改一些内核代码,而我遇到的是我见过的最奇怪的问题。
我正在pm服务器上修改alloc.c(对于那些熟悉minix的人),并且在文件顶部添加了一个全局变量:
PUBLIC int logging = 0;
然后,稍后我尝试在我添加到内核的函数之一中读取变量:
PUBLIC int do_setalloc(void)
{
printf("logging = %i\n", logging");
return (OK);
}
然后,我有一个测试程序,该程序在内核空间之外运行此代码:
int main(void)
{
message m;
m.m1_i1 = 1;
m.m1_i2 = 1;
_syscall(MM,69,&m);
return 0;
}
这是运行此代码时的输出:
logging = %i
Printf实际上并没有用整数的实际值替换%i格式,我在这里扯了一下头发,这项工作很快就要完成了! 救命!
我认为“%i”不是有效的格式转换; 打印int的最常用标签是“%d”。 但是我刚刚看过的printf手册页声称%i是%d的同义词。 也许minix printf没有定义它。
%d
在printf中不是整数吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.