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  
  • 相关阅读:
    序列终结者
    CF696C PLEASE
    [清华集训]Rmq Problem / mex
    CF786B Legacy
    链表结构详解
    synchronized同步方法和同步代码块的区别
    关于守护线程定义
    线程的优先级
    mysql查询当天的数据
    java以正确的方式停止线程
  • 原文地址:https://www.cnblogs.com/haichun/p/3510885.html
Copyright © 2011-2022 走看看