Я пытаюсь удалить файл, когда программа закончится. Я помню, что прежде чем я смог поместить unlink()
перед первым close()
, и мне не нужно снова открывать файл.auto delete file on linux
Что я ожидаю: файл стирается после завершения программы.
Что происходит: Файл стирается, когда вызов для разблокировки происходит, когда файл стирается.
Мой пример программы:
int main()
{
int fd = open(argv[1], O_CREAT);
int x = 1;
write(fd, "1234\n", 5);
close(fd);
fd = open(argv[1], 0);
unlink(argv[1]);
while (x <= 3)
{
int k;
scanf(" %d", &k);
x++;
}
close(fd);
return 0;
}
Есть способ, что я могу open()
файл, взаимодействовать с ним и на close()
удалить файл с жесткого диска? Я использую fedora linux 18.
Мне нужно знать имя файла, который я открыл, таким образом, потому что он будет использоваться другим приложением.
'это не работает now' Можете ли вы описать как? Что-то происходит иначе, чем вы ожидаете? Вы получили сообщение об ошибке? – ajp15243
Зачем вам удалять файл и удалять его? Разве он не закрывает файл, а затем удаляет его правильно? –
@iharob это, чтобы иметь еще несколько гарантий, что никто не попытается изменить файл, пока он работает с ним ... –