【发布时间】:2015-01-19 16:04:20
【问题描述】:
我正在尝试在程序结束时删除文件。我记得在我可以将unlink() 放在第一个close() 之前之前,我不需要重新打开文件。
我的期望:程序结束后文件被删除。
发生了什么:当调用取消链接时文件被删除。文件被删除。
我的示例程序:
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。
我需要知道我以这种方式打开的文件的名称,因为它将被另一个应用程序使用。
【问题讨论】:
-
it is not working now你能描述一下如何吗?发生的事情是否与您的预期不同?你有错误吗? -
为什么要打开文件删除它然后关闭它?打开文件关闭它然后删除它不是正确的做法吗?
-
@iharob 这有更多的保证,在他使用文件时没有人会尝试修改文件......
-
它在我的情况下运行良好(OSX),我不明白为什么它不能在你的平台上运行。详细描述您的问题...
-
存在
flock();