第5章 Linux文件系统与设备文件之二(Linux文件操作C库文件)

本文详细介绍了使用C库函数进行文件操作的方法,包括文件的创建、打开、读写及关闭等基本操作。此外,还提供了定位文件位置的功能,并通过一个具体的示例程序展示了如何在Linux环境下使用这些函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

5.1.2 C库文件操作

C库函数的文件操作独立于具体的操作系统平台,不管是在DOS、Windows、Linux还是在VxWorks中都是这些函数:

1.创建和打开

FILE *fopen(const char *path, const char *mode);

fopen()用于打开指定文件filename,其中的mode为打开模式,C库函数中支持的打开模式如表5.3所示。

表5.3 C库函数文件打开标志


2.读写

C库函数支持以字符、字符串等为单位,支持按照某种格式进行文件的读写,这一组函数为:

int fgetc(FILE*stream);
int fputc(int c, FILE*stream);
char *fgets(char *s, int n, FILE*stream);
int fputs(const char *s, FILE*stream);
int fprintf(FILE*stream, const char *format, ...);
int fscanf (FILE*stream, const char *format, ...);
size_t fread(void *ptr, size_t size, size_t n, FILE*stream);

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

fread()实现从流(stream)中读取n个字段,每个字段为size字节,并将读取的字段放入ptr所指的字符数组中,返回实际已读取的字段数。当读取的字段数小于n时,可能是在函数调用时出现了错误,也可能是读到了文件的结尾。因此要通过调用feof()和ferror()来判断。

fwrite ()实现从缓冲区ptr所指的数组中把n个字段写到流(stream)中,每个字段长为size个字节,返

回实际写入的字段数。

另外,C库函数还提供了读写过程中的定位能力,这些函数包括:

int fgetpos(FILE*stream, fpos_t *pos);

int fsetpos(FILE*stream, const fpos_t *pos);

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

3.关闭
利用C库函数关闭文件是很简单的操作:

int fclose (FILE*stream);

代码清单5.2 Linux文件操作用户空间编程(使用C库函数)

#include <stdio.h>


#define LENGTH 100

void main()
{
    FILE *fd;
    char str[LENGTH];
 
    fd = fopen("hello.txt", "w+");/* 创建并打开文件 */
    if (fd) {
       fputs("Hello World", fd); /* 写入字符串 */
       fclose(fd);
    }

   fd = fopen("hello.txt", "r");
   fgets(str, LENGTH, fd);       /* 读取文件内容 */
   printf("%s\n", str);
   fclose(fd);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值