セキュリティ上の理由から、Linux で未使用の RAM をゼロにするにはどうすればよいですか? この単純な C プログラムを作成しましたが、malloc によって呼び出された RAM が次のループで再利用されるか、新しい RAM が使用されるかはわかりません。うまくいけば、数分後に RAM 全体がゼロになります。
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
int main(void)
{
char *a = NULL; // declare variable
while(1) // infinite loop
{
a = malloc(524288); // half a MB
memset(a, 0, 524288); // zero
free(a); // free
sleep(1); // sleep for 1 second
}
}