我尝试使用_snwprintf()将一些字符串放入名称中; 用于打开名称的文件 但不幸的是,我所知道的只是字符串的第一个字符
这是一个代码:
# include<stdio.h>
#define LN L"\\SystemRoot\\System32\\Log.txt"
void main (void)
{
wchar_t name[1024];
_snwprintf(name,sizeof(name),L"%s",LN);
printf("%s",name);
getchar();
}
,我得到的输出是\
我在内核模式下使用它从用户模式读取文件,我在这样的小事上失败了:)
有人可以赐教我如何获取这个字符串的全名? PLS!
答案 0 :(得分:3)
是的,您将Unicode字符串视为ANSI。在little-endian系统中,前两个字节是“\”后跟零,这将终止字符串。
你想说
wprintf(L"%s", name);
如果您在调试器中单步执行,您会看到'name'包含您期望的内容。