在linux下使用c语言操作临时文件

在linux下使用c语言操作临时文件,第1张

在linux下使用c语言操作临时文件,第2张

有时一个程序需要存储大量的数据或者在几个进程之间交换数据。在这种情况下,您可以考虑使用临时文件。使用临时文件时,有几个问题需要考虑:

1.确保临时文件的文件名不会相互冲突。

2.确保临时文件的内容不会被其他用户或黑客偷看、删除或修改。

所以linux下有专门的函数处理临时文件。

Mkstemp函数
mkstemp函数将在系统中创建并打开一个具有唯一文件名的文件,只有当前用户可以访问这个临时文件。当前用户可以打开并读写这个临时文件。mkp函数只有一个参数,是以“XXXXXX”结尾的非空字符串。mkp函数会用随机生成的字符串替换“XXXXXX”,这样可以保证文件名的正确性。该函数返回一个文件描述符,如果执行失败,则返回-1。在glibc 2.0.6和更早的库中,该文件的访问权限为0666,在glibc 2.0.7之后的库中,该文件的访问权限为0600。

当临时文件完成她的任务时,如果不清理,或者程序在临时文件被意外清理之前就退出了,那么临时文件所在的目录就会被垃圾填满。mkstemp函数创建的临时文件不能自动删除(请参考下面的tmpfile函数)。mkstemp函数执行后,调用unlink函数,unlink函数删除文件的目录项,所以可以通过文件描述符访问临时文件,直到最后一个打开的进程关闭文件操作符,或者程序退出后自动完全删除临时文件。

套路:
直接用高级linux编程的套路,只翻译注释。

#include
#include
/*用write_temp_file创建的临时文件的句柄。在
这个实现中,它只是一个文件描述符。*/
/* write _ temp _ file是临时操作文件的句柄,在本例中只是文件描述符*/
typedef int temp _ file _ handle;
/*将长度字节从缓冲区写入临时文件。
临时文件会立即取消链接。返回
临时文件的句柄。*/
/*在这个函数中,长度字节数据从缓冲区写入临时文件。临时文件一经创建就被删除。该函数返回临时文件的句柄。*/

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 在linux下使用c语言操作临时文件

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情