C语言中关于文件的问题

sun_srh 2002-05-23 04:59:26
下面是一个创建文件的源程序,但文件不能创建,为什么(是不是mktemp函数用得不对,还有其他的函数创建空文件吗)?
#include <dir.h>
#include <stdio.h>

int main(void)
{
/* fname defines the template for the
temporary file. */

char *fname = "TXXXXX", *ptr;

ptr=mktemp(fname);
printf("%s\n",ptr);
return 0;
}

...全文
64 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
sun_srh 2002-05-23
  • 打赏
  • 举报
回复
我知道怎么做了(创建一空文件):
#include<sys\stat.h>
#include<string.h>
#include<fcntl.h>
#include<io.h>
int main(void)
{
int handle;
handle=creat("1111.txt",S_IREAD|S_IWRITE);
close(handle);
return 0;
}
sandwish2000 2002-05-23
  • 打赏
  • 举报
回复
现在再来看打开文件函数的用法。
fopen()函数中第一个形式参数表示文件名, 可以包含路径和文件名两部分。
如:
"B:TEST.DAT"
"C:\\TC\\TEST.DAT"
如果将路径写成"C:\TC\TEST.DAT"是不正确的, 这一点要特别注意。
第二个形式参数表示打开文件的类型。关于文件类型的规定参见下表。
表 文件操作类型
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
字符 含义
────────────────────────────
"r" 打开文字文件只读
"w" 创建文字文件只写
"a" 增补, 如果文件不存在则创建一个
"r+" 打开一个文字文件读/写
"w+" 创建一个文字文件读/写
"a+" 打开或创建一个文件增补
"b" 二进制文件(可以和上面每一项合用)
"t" 文这文件(默认项)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
如果要打开一个CCDOS子目录中, 文件名为CLIB的二进制文件, 可写成:
fopen("c:\\ccdos\\clib", "rb");
如果成功的打开一个文件, fopen()函数返回文件指针, 否则返回空指针
(NULL)。由此可判断文件打开是否成功。
sandwish2000 2002-05-23
  • 打赏
  • 举报
回复
函数名: mktemp
功 能: 建立唯一的文件名
用 法: char *mktemp(char *template);
程序例:

#include <dir.h>
#include <stdio.h>

int main(void)
{
/* fname defines the template for the
temporary file. */

char *fname = "TXXXXXX", *ptr;

ptr = mktemp(fname);
printf("%s\n",ptr);
return 0;
}


他是创建文件名,不是文件!

69,364

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧