• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    unix编程创建前缀固定的临时文件代码分享

    参数:
    pathname,存储临时文件的路径文件名,需要手动free()掉。
    dir,临时文件的路径,如果TMPDIR环境变量不为空,则此参数被忽略,转而使用环境变量。
    pfx,临时文件名的前缀,只使用前5个字符。
    注:
    创建的临时文件需要手动unlink()掉。

    创建临时文件的函数

    复制代码 代码如下:

    int  Make_temp_file(char **pathname,const char *dir,const char *pfx){
     char *ptr,*tmp;
     size_t len;
     int fd;
     debug_assert("Invalid pointer","Make_temp_file()",pathname);
     /*前缀只能是多于5字符*/
     if(pfx (len=strlen(pfx))>0){
      tmp=(char*)Malloc((len>5?5:len)+1);
      strncpy(tmp,pfx,len>5?5:len);
     }
     else
      tmp=NULL;
     ptr=tempnam(dir,tmp);
     if(tmp)free(tmp);
     len=strlen(ptr);
     tmp=(char*)Malloc(len+6+1);
     if(snprintf(tmp,len+6+1,"%sXXXXXX",ptr)==-1)
      err_sys(errno,"snprintf() error");
     free(ptr);
     fd=Mkstemp(tmp);
     *pathname=tmp;
     return fd;
    }

    测试程序

    复制代码 代码如下:

    #include "wrap_ext.h"

    int main(int argc,char **argv){
     int fd;
     char *path;
     if(argc!=3)
      err_quit(-1,"usage %s dir> prefix>",argv[0]);
     fd=Make_temp_file(path,argv[1][0]==' '?NULL:argv[1],argv[2][0]==' '?NULL:argv[2]);
     err_msg("temporary file path:%s",path);
     Close(fd);
     Unlink(path);
     free(path);
     return EXIT_SUCCESS;
    }

    测试结果

    复制代码 代码如下:

    root@U-SERVER:/home/apu/sysinfo# ./tmpfile " " " "
    temporary file path:/tmp/fileq55hoF8swFfa
    root@U-SERVER:/home/apu/sysinfo# ll /tmp/fileq55hoF8swFfa
    ls: cannot access /tmp/fileq55hoF8swFfa: No such file or directory
    root@U-SERVER:/home/apu/sysinfo# ./tmpfile " " tmp_
    temporary file path:/tmp/tmp_0rzhqozlthxW
    root@U-SERVER:/home/apu/sysinfo# ./tmpfile /home tmp_
    temporary file path:/home/tmp_phzxvRrp33OL

    您可能感兴趣的文章:
    • 解决MySQL因不能创建临时文件而导致无法启动的方法
    • python创建临时文件夹的方法
    • C#创建临时文件的方法
    • java实现创建临时文件然后在程序退出时自动删除文件
    • File.createTempFile创建临时文件的示例详解
    上一篇:用模板的方式创建守护进程代码实例
    下一篇:linux shell脚本学习录制与回放终端会话
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    unix编程创建前缀固定的临时文件代码分享 unix,编程,创建,前缀,固,