C语言文件读写

在C语言中,文件的表示符号是整数型的,所以可以通过int定义文件。

open

可以通过open函数将具体的一个文件与文件描述符连接起来,其中read函数在fcntl.h中定义,如下:

int open(const char *path, int oflag, ...);

在使用open函数读写时,要首先确定文件的属性,比如后续操作文件时的属性(可写,可读,可追加,可创建)。

还需要定义文件在系统中的权限(不同用户的读写操作)。

一般而言,对文件的属性和权限的定义如下:

#define WRITE_FLAGS (O_WRONLY | O_CREAT | O_EXCL)
#define WRITE_PERMS (S_IRUSR | S_IWUSR)

write

通过write向文件描述符中写入内容,定义如下:

#include <unistd.h>

ssize_t write(int fd, const void *buf, size_t count);

函数返回成功写入的字节数。

一个关于open、write的例子

#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>

#define WRITE_FLAGS (O_WRONLY | O_CREAT | O_EXCL)
#define WRITE_PERMS (S_IRUSR | S_IWUSR)

int main(void)
{
	int fd;
	char buf[10] = "abcdefg";
	fd = open("test.txt", WRITE_FLAGS, WRITE_PERMS);
	write(fd, buf, 2);
	return 0;
	}

可以参看test.txt中内容为

ab

read

通过read可以从相应文件描述符中读取字符串,其定义如下:

#include <unistd.h>

ssize_t read(int fd, void *buf, size_t count);

函数返回成功读取的字符个数。

在读取文件时,一般需要定义open的属性,一般定义如下:

#define READ_FLAGS O_RDONLY

说明后续程序的操作只对文件内容进行读取。

一个open、read的例子

#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>

#define READ_FLAGS O_RDONLY
#define WRITE_FLAGS (O_WRONLY | O_CREAT | O_EXCL)
#define WRITE_PERMS (S_IRUSR | S_IWUSR)

int main(void)
{
	int fd;
	char buf[10];
	fd = open("test.txt", READ_FLAGS);
	read(fd, buf, 4);
	printf("the string read: %s\n", buf);
	return 0;
	}

test.txt的文件内容为:

abcdefg

程序运行的结果为:

 

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值