Linux 库函数实现文件操作

2014-11-24 08:52:01 ? 作者: ? 浏览: 1

1. Linux系统调用,文件的描述符使用的是一个整数,库函数访问文件使用FILE类型的指针去指向描述文件;


2. 库函数不随系统平台而变,即不管win还是Linux都适用;



库函数 - 读文件


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


功能:stream指向的文件中读取n个字段,每个字段为size字节,并将读取的数据放入ptr所指向的字符数组中,返回实际已读取的字节数。(读出来的数据量为size*n



库函数 - 写文件


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


功能:从缓冲区ptr所指向的数组中把n个字段写到stream指向的文件中,每个字段长为size个字节,返回实际写入的字段数。



库函数 - 创建和打开


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


filename打开的文件名(包含路径,缺省为当前路径)


mode打开模式


#include


#include



int main()


{


FILE *fp;


char ch;


char fname[30];



printf("Please input the file name:");


scanf("%s", &fname);


fp=fopen(fname, "r"); //以只读方式打开


if(fp==NULL){ //打开失败


printf("Open failed.\n");


exit(1);


}


while((ch=getc(fp))!=EOF) //一个字符一个字符遍历


{


putchar(ch); //输出ch传入的字符


}


fclose(fp); //关闭文件


return 0;


}



读字符:


fgetc 获取字符:


fputc 输出字符:


#include


#include



int main()


{


char msg[] = "Hello, linuxdba";


// int i;


FILE *fp;


char ch;


fp = fopen("/etc/passwd", "r");


while ((ch = fgetc(fp)) != EOF)


//while (msg[i]&&(i < strlen(msg))) // okpass


{


fputc(ch, stdout); //什么意思?


// i ++;


}


fclose(fp);


return 0;


}


路径获取


char *getcwd(char *buffer, size_t size)


功能:提供一个size大小的buffergetcwd会把当前的路径名拷贝到buffer中。如果buffer太小,函数会返回-1.


-->

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: