【发布时间】:2011-10-25 12:13:24
【问题描述】:
我有一个这样的 C 函数..
func(uint8_t *key,uint8_t keylen) {
FILE *fk;
fk=fopen("akey","wb");
fwrite((char *)key,keylen,1,fk);
puts((char *)key); // for testing
fclose(fk);
sprintf(sstring,"... \"%s\" ... ",(char *)key);
// ...other irrelevant stuff for here
system(sstring);
}
我希望将作为输入提供的密钥用于
在sprintf 命令中标记\"%s\"
输入:
Key=qwerty
输出:
$cat akey
qwerty
puts((char *)key) 的输出是 -
qwerty�
// include newline character as well
建议我,我试过这个(在代码中各自的位置)
但得到segmentation fault
char *p;
memcpy(p,(char *)key,keylen);
puts((char *)p);
【问题讨论】:
标签: c string pointers segmentation-fault memcpy