我写的是使用系统()函数的fuzzer,我需要复制:sprintf不能复制?
char a[1100]; /* full of A's with null ending */
到:
char tmp[10000];
我用:
sprintf(tmp, "%s", a);
当我printf的TMP没有什么打印。我究竟做错了什么?
我写的是使用系统()函数的fuzzer,我需要复制:sprintf不能复制?
char a[1100]; /* full of A's with null ending */
到:
char tmp[10000];
我用:
sprintf(tmp, "%s", a);
当我printf的TMP没有什么打印。我究竟做错了什么?
没有看到整个事情,没有办法说你做错了什么。
以上sprintf
应该可以工作,但strcpy
会更有意义。我猜想sprintf
工作正常。可能是因为你认为你的a
数组不是“满A”,而是一个空字符串(满零)。或者,也许这是您的打印,要么不起作用,要么起作用,但出于某种原因,您看不到输出。
我敢打赌你的a
是一个空字符串。没有A在那里。在哪里以及如何将这些A放入a
阵列?
输出通常是行缓冲的。如果您正在打印的字符串没有换行符,则可能会在未先致电fflush
(也请参阅http://c-faq.com/stdio/fflush.html)时看不到它。但正如AndreyT所说,我们无法看到代码的其余部分。
最初填入的'a'如何? – 2010-06-20 00:54:38