シェルからターゲット ファイルを削除した後でも、write() システム コールで何かを書き込むことができるのはなぜですか?
最初の数回の書き込みが成功した後にファイルを削除すると、 write() が失敗することを期待していましたが、そうではなく、どこに書き込むのかわかりません。
誰でもこれを説明できますか、ありがとう!!
私のテストサンプルコードは次のとおりです。
int fd = open ("./test.txt", O_CREAT | O_RDWR | O_APPEND, 0666);
if (fd == -1)
error_and_exit ("open() failed");
ssize_t written = 0;
char buf[] = "apple\n";
while (true)
{
printf ("perform write...\n");
written = write (fd, buf, sizeof(buf));
if (written <= 0)
error_and_exit ("write failed");
printf ("=> wrote %d bytes\n", written);
printf ("sleep %d...\n\n", SLEEP_TIME);
sleep (SLEEP_TIME);
}