网站地图
hnsjyk999.com
三九百科 包罗万象
mktemp 发布于:

mktemp的头文件是在TC2.0中其头文件是dir.h,定义函数是char mktemp(char * template),具有产生后的文件名会借指针返回的特点。

C语言创船蒸翻建唯一临时文件函数mktemp

函数简介

头文件:在TC2.0中其头文件是dir.h,在Visual C++ 6.0中,更多的使用_mktemp,其头文件是io.h

定义函数 char * mktemp(char * template);

功腊愉兰能: mktemp()用来产生唯一的临时文件名。参数template所指的文件名称字符串中最后六个字符必须是XXXXXX。产生后的文件名会借字符串指针返回。

返回值: 文件顺利打开后,指向该流的文件指针就会被返回。如果文件打开失败则返回NULL,并把错误代码存在errno中。

其他创建临时文件的函数:tmpfile,tmpnam程序示例

(在Visual C++ 6.0中运行通过)

#include<stdio.h>

#include<string.h>

#include<io.h>

int main()

{

char *templat="fnXXXXXX";

char *result;

char names[5][9];

int Count ;

for(Count=0; Count<5;Count++)

{

strcpy(names[Count],templat);

result=_mktemp(names[Count]);

printf("%s\n\r",result);

}

return 0;

}

(在TC2.0中运行成功)

#include <stdio.h>

#include <dir.h>

int main(void)

{

FILE *fp;

char *fname = "d:\\TXXXXXX", *newname, first;

newname = mktemp(fname);

fp = fopen(newname,"w+");

fprintf(fp,"abcdefghijklmnopqrstuvwxyz");

rewind(fp);

fscanf(fp,"%c",&first);

printf("The first character is: %c\n",first);

fclose(fp);

remove(newname);

return 0;

}

附加说明 参数template所指的文件名称字符串必须乎估声明为数组,如:

char template[ ]=”template-XXXXXX”;

不可用char * template=”template-XXXXXX”;

范例 #include&lt;stdlib.h&gt;

main()

{

char template[ ]=”template-XXXXXX”;

mktemp(template);

printf(“template=%s\n”,template);

}

(在gcc 4.6中辣档汗运行通过)

#include<stdio.h>
  #include <stdlib.h>
  #include<string.h>
  #include<malloc.h>
  #define N 10

int main()
  {
  char template[]= "template-XXXXXX";
  char **names;
  int count;
  int len;

len = strlen(template);

/*

strlen()的时候不统计结束符 ‘\0’
  但是在分配空间的时候需要考虑定煮危海为结束符 ‘\0’ 分配空间

*/

names=(char **)malloc( sizeof(char *)*N );

for(count=0; count<巩篮巩阀N;count++)
  {
  names[count]=(char*)malloc( sizeof(char)*(len+1) );
  }
  for(count=0; count<N;count++)
  {
  strcpy(names[count],template);

//strcpy的时候dest必须有足够的空间来容纳src的字符串
  mktemp(names[count]);
  printf("template=%s\n",*(names+count));
  }
  for(count=0; count<盛符驼N; count++)
  free(names[count]);
  free(names);
  return 0;
  }

结果如下:

template=template-FGnuIj

template=template-sZTFTi

template=template-irYR4h
  template=template-OEw4fh
  template=template-clyhrg
  template=template-xN2uCf
  template=template-7E2INe
  template=template-D8uXYd
  template=template-lyqcad
  template=template-oPNrlc


相关文章推荐:
指针 | 指针 | 指针 | 文件指针 | 错误代码 | tmpfile | tmpnam | remove | 数组 |