私はCで小さなプログラムを書きました
FILE *fp = fopen("/tmp/file", "w+");
char *buf = "hello";
fwrite(buf, 1, strlen(buf), fp);
for(;;);
catを使用してコンテンツを読み取るシェルでは、fflushが呼び出されていないため、ファイルは空です。私の質問は、それが永遠にこのように残るのか、それともいつかデータがディスクにプッシュされるのかということです。
言い換えると、fwrite呼び出しはファイルシステムの境界を越えてVMサブシステムに到達しますか?はいの場合、ページデーモンをいつか呼び出す必要があります。これによりコンテンツがファイルにフラッシュされます。そうでない場合、ファイルが閉じられるかフラッシュされるまで、データは永久にそこに残ります。