zoukankan      html  css  js  c++  java
  • C函数 mktemp

         最近写程序的时候需要临时文件,于是开始查怎样生成一个临时文件,但是,需要注意,这个临时文件必须是唯一的,不能与其他已经存在的文件有冲突,所以,大部分的函数都会失效,不过,mktemp 函数可以做到这一点,首先,我们来看一看这个函数的原型:

          char * mktemp(char *template);

          我们需要注意,template 代表的是传入的文件名,这个文件名必须以 XXXXXX 结尾,至于为什么,有兴趣的朋友可以自行去查一些相关的资料。然后,这个函数就就返回一个唯一的文件名,template 是值-结果参数,也会返回那个唯一的文件名。

          好吧,来一段测试代码吧:

     

    1. /* 
    2.  * dlut_mktemp.c 
    3.  * 
    4.  *  Created on: 2014年1月8日 
    5.  *      Author: DLUTBruceZhang 
    6.  */  
    7.   
    8.   
    9. #include <stdio.h>  
    10. #include <string.h>  
    11. #include <stdlib.h>  
    12. #include <unistd.h>  
    13.   
    14. void dlut_mktemp(char *);  
    15.   
    16. int main(int argc, char **argv, char **environ)  
    17. {  
    18.     dlut_mktemp("test.XXXXXX");  
    19.   
    20.     return 0;  
    21. }  
    22.   
    23. void dlut_mktemp(char *template)  
    24. {  
    25.     char name[1024];  
    26.     char file_name[1024];  
    27.     int i = 0;  
    28.   
    29.     memset(name, 0, sizeof(name));  
    30.     memset(file_name, 0, sizeof(file_name));  
    31.   
    32.     strcpy(name, template);  
    33.   
    34.     for(i = 0; i != 10; i++)  
    35.     {  
    36.         strcpy(file_name, mktemp(name));  
    37.   
    38.         printf("%s ", file_name);  
    39.   
    40.         memset(file_name, 0, sizeof(file_name));  
    41.   
    42.         strcpy(name, template);  
    43.   
    44.         unlink(file_name);  
    45.     }  
    46.   
    47.     return;  
    48. }  


          运行结果如下所示:

     

     

    1. test.vJFk9Z  
    2. test.8vGM35  
    3. test.lHReYb  
    4. test.gX9GSh  
    5. test.Foz9Mn  
    6. test.sm6BHt  
    7. test.DOK4Bz  
    8. test.EDVywF  
    9. test.bde3qL  
    10. test.E4DxlR  
  • 相关阅读:
    ExceptionExtensions
    implicit operator
    javascript Demo
    KO Demo
    Model Binding
    Await Async Task
    STL查找序列中处于某一大小范围内的元素个数
    2017头条笔试题:二维点集中找出右上角没有点的点并按x坐标从小到大打印坐标
    VS2017新建windows控制台程序打印中文乱码问题
    【详解】Linux的文件描述符fd与文件指针FILE*互相转换
  • 原文地址:https://www.cnblogs.com/haichun/p/3510885.html
Copyright © 2011-2022 走看看