在我的情况下,我的应用程序的用户被要求输入他们的密码来启动它。要获取密码,我只需使用:
char c;
std::string password;
while ... // until the end of entry
{
c = fgetc(stdin);
password += c;
}
检查密码后,我会销毁该变量,因此无法使用我的程序的核心图像检索它。例如,如果有人使用“gcore”命令然后在生成的核心中搜索密码,它将找不到它。
但就我而言,我仍然可以检索密码值,因为它似乎仍在标准输入缓冲区中。
所以我的问题是如何清除标准输入缓冲区以使用户键入的值不再在内存中可用?
对于我已经尝试过的信息:fflush、__fpurge、fwrite(从标准输入流的开始位置)......似乎没有任何效果。
先感谢您。