最近在做项目的时候需要用到一个临时文件,但是又不希望这个文件会被其他进程访问到,网上查了一下,发现有一个很简单的做法,但是需要使用POSIX的IO函数来进行。
首先需要明确两点:
1、我们需要的是临时文件;
2、不希望其他进程可以访问
具体做法如下:
1、使用open创建一个文件,获取文件的描述符;
2、确认文件建成功后,使用unlink函数将文件删除,效果是在相应目录下该文件被删除了,使用ls、du是看不到的,需要注意的是现在我们还保持着该文件的描述符,因此,此时该文件的inode是没有被删除的,会等到inode的引用变成0才会被删除,这个时候使用df是可以看到该文件的;这样一来就保证只有该进程持有该临时文件的描述符,从而保证了安全;
3、操作完成之后,使用close关闭文件的描述符,inode引用变成0,文件的inode被删除。