系统编程(九)文件IO标准库API getc putc

上一节讲了读写单个字符的函数fputc和fgetc,这次介绍另外两个比较相似的函数putc和getc

int getc(FILE *stream)     //从stream流中读取一个字符
int putc(int char, FILE *stream)  //把字符char 写到stream流中

这两个函数的使用上一节的fputc和fgetc函数的使用极为相似,这里的例子代码我也是用类似的

#include 
#include 

int main ()
{
   FILE *fp;
   int ch;
   fp = fopen("demo8.txt", "w+");
   if(fp == NULL)
   {
    printf("open file failed\n");
   }

   for( ch = 48 ; ch <= 60; ch++ )
   {
      putc(ch, fp);         //写入文件
   }

   fseek(fp,0,SEEK_SET);
   while(1)
   {
      ch = getc(fp);       //读取文件中的字符

      if(feof(fp))        //直到文件结束
      {
          break ;
      }
      printf("%c\n",ch );
   }
   fclose(fp);

   return 0;
}

从用法上来看fgetc和getc,fputc和putc是完全一样大那么他们的区别在什么地方哪?
我们使用

man 3 putc   //查看库函数

系统编程(九)文件IO标准库API getc putc_第1张图片
这里看到他们基本等同的,但是fput使用了宏去实现,似乎就这点区别,平时用的时候尽量使用putc和getc把因为这个是用宏实现的,所以效率应该是比fputc和fgetc高的

你可能感兴趣的:(嵌入式)