手机版
你好,游客 登录 注册 搜索
背景:
阅读新闻

Linux 库函数实现文件操作

[日期:2012-12-22] 来源:Linux社区  作者:liuy5277 [字体: ]

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 <stdio.h>

#include <stdlib.h>

 

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 <stdio.h>

#include <string.h>

 

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.

linux
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款