库函数-文件访问

来源:互联网 发布:达内软件科技有限公司 编辑:程序博客网 时间:2024/05/18 20:11
 C库函数的文件操作是独立于操作系统平台的,不管时在DOS,WINDOWS,Linux还是在VXWORKS中都是这些函数。
1 库函数-创建和打开
FILE *fopen(const char *filename,const char *mode)
*filename: 打开的文件名(包含路径,缺省为当前路径)
*mode: 打开模式
常见打开模式:
r, rb 只读方式打开
w, wb 只写方式打开,如果文件不存在,则创建该文件
a, ab 追加方式打开,如果文件不存在,则创建该文件
r+ ,r+b, rb+ 读写方式打开
w+,w+b,wh+ 读写方式打开,如果文件不存在,则创建该文件
a+,a+b,ab+ 读和追加方式打开,如果文件不存在,则创建该文件
b 用于区分二进制文件和文本文件,这一点在DOS、Windows系统中是有区别的,但是Linux不区分二进制文件和文本文件。
2 库函数-读
size_t fread(void *ptr, size_t size,size_t n, FILE *stream)
功能:
从stream指向的文件中读取n个字段,每个字段为size字节,并将读取的数据放入ptr所指向的字符数组中,返回实际已读取的字节数。
3 库函数-写
size_t fwrite(const void *ptr, size_t size, size_t n, FILE *stream)
功能:
从缓冲区ptr所指的数组中把n个字段写到stream指向的文件中,每个字段长为size个字节,返回世界写入的字段数。
4 库函数-读字符
int fgetc(FILE *stream)
从指定的文件中读一个字符
#include<stdio.h>
main()
{
FILE *fp
char ch;
if((fp=fopen(“c1.txt”,”rt”))= =NULL)
{
    printf(“\nCannot open file strike any key exit!”);
    getch();
    exit(1);
}
ch=fgetc(fp);
while(ch != EOF)
{
     putchar(ch);
     ch=fgetc(fp);
}
fclose(fp);
}

5 库文件-写字符
int fputc(int c, FILE *stream)
向指定的文件写入一个字符。

6 库函数-格式化读

fscanf(FILE *stream ,char *format[, argument…])
从一个流中进行格式化输入

 
7 库函数-格式化写

int fprintf(FILE *stream, char* format[, argument,…])
格式化输出到一个流中

8 库函数-文件定位
int fseek(FILE *stream, long offset, int whence)
whence:
SEEK_SET从文件的开始处开始搜索
SEEK_CUR从当前位置开始搜索
SEEK_END从文件的结束处开始搜索

9 库函数-路径获取

在编写程序的时候,有时候需要得到当前路径。C库函数提供了getcwd来解决这个问题。
char * getcwd(char *buffer, size_t size)
我们提供一个size大小的buffer, getcwd会把当前的路径名copy到buffer中。如果buffer太小,函数会返回-1。

10 库函数-创建目录
#include<sys/stat.h>
Int mkdir(char *dir ,int mode)
功能:创建一个新目录。
返回值:0表示成功。-1表示出错。

11 库函数-读取字符串

fgets(由文件中读取一字符串,也可以从屏幕上输入一字符串,见范例。)
  相关函数
  open,fread,fscanf,getc
  表头文件
  include<stdio.h>
  定义函数
  char * fgets(char * s,int size,FILE * stream);
  s,数据存储位置;size,读取字符串的最大数量;stream,指向FILE结构的指针。
  函数说明
  fgets()用来从参数stream所指的文件内读入字符并存到参数s所指的内存空间,直到出现换行字符、读到文件尾或是已读了size-1个字符为止,最后会加上NULL作为字符串结束。
  返回值
  fgets()若成功则返回s指针,返回NULL则表示有错误发生。
  范例
  #include<stdio.h>
  int main(void)
  {
  char s[80];
  fputs(fgets(s,80,stdin),stdout);
  return 0;
  }
  执行
  this is a test /*输入*/
  this is a test /*输出*/

12 库函数-写入字符串

函数名: fputs
  功 能: 送一个字符串到一个流中
  用 法: int fputs(char *string, FILE *stream);
  参数: string是要写入文件的字符串。
  stream 很明显是一个FILE对象。
  程序例:
  #include <stdio.h>
  int main(void)
  {
  FILE *fpout=fopen("1.txt","wr");//
  /* write a string to standard output */
  fputs("Hello world\n", fpout);
  return 0;
  }