Ist*_*tel 6 c windows file temporary temp
基本上,我有被赋予了4兆的压缩文件中的程序,它具有解码此文件为非压缩〜100微克,然后压缩它放回〜4微克文件.我需要将这个中间100兆字节文件存储在驱动器上的某个位置(不要将其保留在内存中).
程序是用C语言编写的,将在MS Windows 7上执行.在解压缩时,没有保证文件夹(具有写访问权限)给予程序(源文件的文件夹可能是只读的,带有目标文件的文件夹可能不是但指定).
事实证明这不是一件容易的事:
1)我已经读过一个C函数,它创建一个临时文件,当关闭或程序终止时它会消失.但是,从我的理解它试图使磁盘C上的文件,在根目录下,如果用户有没有权利,这将明显失败(其中普通用户犯规)
2)我有一个想法,使用环境/系统变量TEMP并在那里创建一个文件,但看着一个随机的Win7 PC没有调整,我看到这个变量指向c:/ windows/temp,该文件夹具有特定的权利对于"用户" - 也就是说,他们有权读取,执行,创建和写入文件,但不能删除它们,检查它们的属性等.这意味着,我认为,如果程序是使用用户权限运行的,它将会能够创建一个文件但不能删除它,所以"删除"它的唯一方法是打开文件进行写入然后关闭它,使其成为0长文件.这也是不希望的,我不知道如何从C查询系统变量
3)所以,基本上,我现在唯一的想法是创建一个函数来打开以下文件:
和删除功能:
有更好的想法吗?
任何帮助表示赞赏,谢谢!
PS:程序不能使用任何外部库,如MFC等,只能使用内置的标准C函数
检索为临时文件指定的目录的路径.
为临时文件创建名称.如果生成了唯一的文件名,则会创建一个空文件并释放其句柄; 否则,仅生成文件名.
这两个为您提供了获取临时文件的位置和名称的简便方法.
UPD:MSDN上的代码示例:创建和使用临时文件.
| 归档时间: |
|
| 查看次数: |
5320 次 |
| 最近记录: |