• linux应用程序开发-文件编程-库函数


    ---恢复内容开始---

    c库函数文件操作独立于具体的系统平台,可移植性较好。

    库函数-创建和打开

    FILE*fopen(const char*filename,const char*mode)

    mode:打开模式

    常见的打开模式:

    r,rb:只读方式打开

    w,wb: 只写方式打开,如果文件不存在,则创建该文件

    a,ab:追加方式打开,如果文件不存在,则创建该文件

    r+,r+b,rb+:读写方式打开

    w+,w+b,wh+:读写方式打开,如果文件不存在,则创建该文件

    a,a+b,ab+:读和追加方式打开,如果文件不存在,则创建该文件

    b用于区分二进制文件和文本文件,这一点在DOS,window中区分,LINUX不区分二进制文件盒文本文件。

    库函数-读

    size_t fread(void*ptr,size_t size,size_t n,FILE *stream);

    从stream指向的文件中读取n个字段,每个字段为size字节,并将读取的数据放入ptr所指的字符数组中,返回实际读取的字节数。

    库函数-写

    size_t fwrite(void*ptr,size_t size,size_t n,FILE *stream);

    读字符:

    int fgetc(FILE*stream);

    ---恢复内容结束---

    c库函数文件操作独立于具体的系统平台,可移植性较好。

    库函数-创建和打开

    FILE*fopen(const char*filename,const char*mode)

    mode:打开模式

    常见的打开模式:

    r,rb:只读方式打开

    w,wb: 只写方式打开,如果文件不存在,则创建该文件

    a,ab:追加方式打开,如果文件不存在,则创建该文件

    r+,r+b,rb+:读写方式打开

    w+,w+b,wh+:读写方式打开,如果文件不存在,则创建该文件

    a,a+b,ab+:读和追加方式打开,如果文件不存在,则创建该文件

    b用于区分二进制文件和文本文件,这一点在DOS,window中区分,LINUX不区分二进制文件盒文本文件。

    size_t fread(void*ptr,size_t size,size_t n,file *stream);

    写:

    size_t fwrite(void*ptr,size_t size,size_t n,file *stream);

    读字符

    int fgetc(FILE*stream);

    举例:

    #include<stdio.h>

    main()

    {

      FILE*fp;

      char ch;

      if((fp=fopen("c1.txt","rt"))==NULL)

    {

      printf(" Cannot open file strike any key exit");

      getch();

      exit(1);

    }

      ch=fgetc(fp);

      while(ch!=EOP)

      {

        putchar(ch);

        ch=fgetc(fp);

      }

      fclose(fp);

    }

    写字符

    int fputs(inyt c,FILE*stream)

    举例:

    #include<stdio.h>

    main()

    {

      FILE*fp;

      char ch;

      if((fp=fopen("string","w+"))==NULL)

    {

      printf(" Cannot open file ,strike any key exit");

      getch();

      exit(1);

    }

      printf("input a string: ");

      ch=fgetchar();

      while(ch!=' ')

      {

        fputc(ch,fp);

        ch=getchar();

      }

      printf(" ");

      fclose(fp);

    }


    格式化读:

    fscanf(FILE*stream,char*format[,argument...])

    从一个流中格式化输入

    #include<stdlib.h>

    #include<stdio.h>

    int mian(void)

    {

      int i;

      printf("input an interger:");

      if(fscanf(stdin,"%d",&i))

      printf("The integer read was:%i ",i);

      

    }

    格式化写:

    fprintf(FILE*stream,char*format[,argument...])

    格式化输出从到一个流中

    #include<stdlib.h>

    #include<process.h>

    FILE*stream;

    int mian(void)

    {

      int i=10;

    double fp=1.5;

    char s[]="this is a string";

    char c=' ';

    stream=fopen("fprintf.out",""w);

      fprintf(stream,"%s%c",s,c);

         fprintf(stream,"%d ",i);

         fprintf(stream,"%f ",fp);

      fclose(stream);

      

    }

    定位:

    int fseek(FILE*stream,long offset,int whence);

    whence:

    SEEK_SET

    SEEK_CUR

    SEEK_END

    路径获得:

    char*getcwd(char*buffer,size_t size);

    把路径copy到buffer中,buffer如果太小,返回-1;

    创建目录:

    int  mkdir(char*dir,int mode);

    0返回成功,-1表示出错。

  • 相关阅读:
    数据库概念相关
    JavaWeb基础知识总结
    MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作
    MyBatis学习总结(一)——MyBatis快速入门
    [源码解析]HashMap和HashTable的区别(源码分析解读)
    MyBatis学习总结(三)——优化MyBatis配置文件中的配置
    MyBatis学习总结(四)——解决字段名与实体类属性名不相同的冲突
    MyBatis学习总结(五)——实现关联表查询
    MyBatis学习总结(六)——调用存储过程
    MyBatis学习总结(七)——Mybatis缓存
  • 原文地址:https://www.cnblogs.com/summer-xwq/p/4161970.html
Copyright © 2020-2023  润新知