文件编程之库函数

来源:互联网 发布:影楼制作相册软件 编辑:程序博客网 时间:2024/05/05 16:42

库函数-文件访问(独立于操作系统

库函数-创建和打开

FILE *fopen(const char *filename,const char *mode)
*filename:打开的文件名(包含路径,缺省为当前路径)
*mode:打开模式

库函数-读
size_t fread(void *ptr,size_t size,size_t n,FILE *stream)
功能:从stream指向的文件中读取n个字段,每个字段为size字节,并将读取的数据放入ptr所指的字符数组中,返回实际已读取的字节数.

库函数-写
size_t fwrite(const void *ptr,size_t size,size_t n,FILE *stream)
功能:从缓存区ptr所指的数组中把n个字段写到stream指向的文件中,每个字段长为size个字节,返回实际写入的字段数.

库函数-读字符
int fgetc(FILE *stream)
从指定的文件中读一个字符
下面看一个例子:fgetc.c


报错:fgetc.c: In function ‘main’:
fgetc.c:10: warning: incompatible implicit declaration of built-in function ‘exit’
/tmp/ccLnYhWS.o: In function `main':
fgetc.c:(.text+0x38): undefined reference to `getch'

没编译成功,不知道为什么,以后有时间再看吧。

库函数-写字符
int fputc(int c,FILE *stream)
向指定的文件中写入一个字符
下面看一个例子fputc.c


报错:fputc.c: In function ‘main’:
fputc.c:10: warning: incompatible implicit declaration of built-in function ‘exit’
/tmp/ccfiQRRO.o: In function `main':
fputc.c:(.text+0x38): undefined reference to `getch'
collect2: ld returned 1 exit status

这个也没编译成功。

库函数-格式化读
fcanf(FILE *steam,char *format[,argument...])
从一个流中进行格式化输入
例子fcanf.c


报错:/tmp/cchTeWJB.o: In function `main':
fcanf.c:(.text+0x2f): undefined reference to `fcanf'
collect2: ld returned 1 exit status

再一次没编译成功,神呐!

库函数-格式化写
int fprintf(FILE *stream,char *format[,argument,...])
格式化输出到一个流中
例子:fprintf.c


报错:fprintf.c:2

: fatal error: process.h: 没有那个文件或目录
compilation terminated.

额,。。。。。

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

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


成功 :)

编译后输入$ ./getcwd

终端显示:current working directory:/home/dagobert/code/linux/File

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