Chinaunix首页 | 论坛 | 博客
  • 博客访问: 425586
  • 博文数量: 131
  • 博客积分: 1990
  • 博客等级: 上尉
  • 技术积分: 996
  • 用 户 组: 普通用户
  • 注册时间: 2009-09-24 12:15
文章分类
文章存档

2011年(4)

2010年(19)

2009年(108)

我的朋友

分类: C/C++

2009-09-26 12:32:47

1.#if 0
   XXXX
  #endif
用于屏蔽注释中间的代码,比起/* */,这样的注释避免了嵌套。
xxxx定义的是一些调试版本的代码,此时xxxx完全被编译器忽略。  
  如果想让xxxx生效,只需把  
  #if   0  
  改成  
  #if   1
2.虽然getc()与fgetc()作用相同(从文件中读取一个字符),但getc()为宏定义,非真正的函数调用。 
3.gets()用来从标准设备读入字符并存到参数s所指的内存空间,直到出现换行字符或读到文件尾为止,最后加上NULL作为字符串结束。由于gets()无法知道字符串s的大小,必须遇到换行字符或文件尾才会结束输入,因此容易造成缓冲溢出的安全性问题。建议使用fgets()取代。
4.mktemp(产生唯一的临时文件名) 
相关函数 tmpfile 
表头文件 #include 
定义函数 char * mktemp(char * template); 
函数说明 mktemp()用来产生唯一的临时文件名。参数template所指的文件名称字符串中最后六个字符必须是XXXXXX。产生后的文件名会借字符串指针返回。 
返回值 文件顺利打开后,指向该流的文件指针就会被返回。如果文件打开失败则返回NULL,并把错误代码存在errno中。
附加说明 参数template所指的文件名称字符串必须声明为数组,如:
char template[ ]=”template-XXXXXX”;
不可用char * template=”template-XXXXXX”;
范例 
#include
main()
{
char template[ ]=”template-XXXXXX”;
mktemp(template);
printf(“template=%s\n”,template);
}
5.ftell(取得文件流的读取位置) 
相关函数 fseek,rewind,fgetpos,fsetpos 
表头文件 #include 
定义函数 long ftell(FILE * stream); 
函数说明 ftell()用来取得文件流目前的读写位置。参数stream为已打开的文件指针。 
返回值 当调用成功时则返回目前的读写位置,若有错误则返回-1,errno会存放错误代码。 
错误代码 EBADF 参数stream无效或可移动读写位置的文件流。
范例
#include
main()
{
FILE * stream;
long offset;
fpos_t pos;
stream=fopen(“/etc/passwd”,”r”);
fseek(stream,5,SEEK_SET);
printf(“offset=%d\n”,ftell(stream));
rewind(stream);
fgetpos(stream,&pos);
printf(“offset=%d\n”,pos);
pos=10;
fsetpos(stream,&pos);
printf(“offset = %d\n”,ftell(stream));
fclose(stream);
}

执行 offset = 5
offset =0
offset=10
阅读(1305) | 评论(0) | 转发(1) |
0

上一篇:volatile关键字的作用

下一篇:随笔摘抄

给主人留下些什么吧!~~