linux C函数write()写入的数据是如何存储的?read()又是如何读取的?

linux C函数write()写入的数据是如何存储的?read()又是如何读取的?,第1张

使用二进制存储

write(fd, &student, sizeof(student));

read(fd, &student, sizeof(student));

如果要读取里面第3个student的内容:

lseek(fd, 2 sizeof(student), SEEK_SET); //即从开始搜索2个student那么长。

这样的前提是student中没有指针,因为每次运行指针的内容是不确定的。

可以考虑先建一个空的excel

写一条数据就完成对excel的编辑

每次循环重新读取这个excel 重复编辑这个excel

这样效率可能不行,不过你要程序中断也要写入一些数据

1、read和write是UNIX或者一些类UNIX系统,比如LINUX系统中使用的,称为LINUX系统函数。这种函数只能在特定的 *** 作系统下使用,可移植性差。fread和fwrite是C库函数。这种函数基本在任何 *** 作系统都能使用,可移植性高。

2、基础知识介绍只介绍LINUX系统函数,常用的有creat,open,close,read,write,lseek,access,一般用于文件编程

3、如何使用谈到如何使用就必须说到另一个知识,文件描述符(file

description),是一个非负数。

函数原型:int

read(int

fd,

const

void

buf,

size_t

length)

功能:

从文件描述符fd所指向的文件中读取length个字节到buf所指向的缓存区中,返回值为实际读取的字节数

int

write(int

fd,

const

void

buf,

size_t

length)

功能:

把length个字节从buf所指向的缓存区中写到件描述符fd所指向的文件中,返回值为实际写入的字节数

例子:

#define

LENGTH

1024

#define

BUFFES_SIZE

1024

int

n1,

n2;

int

fd1,

fd2;

int

buffer[BUFFES_SIZE];fd1

=

open(

"HEllo1txt",

O_RDWR

|

O_CREAT,

O_IRUSE

|

O_IWUSR);

fd2

=

open(

"HEllo2txt",

O_RDWR

|

O_CREAT,

O_IRUSE

|

O_IWUSR);

n1

=

read(

fd1,

buffer,

LENGTH);

n2

=

write(

fd2,

buffer,

n1);

都是

scanf函数是一个标准库函数,它的函数原型在头文件“stdioh”中。与printf函数相同,C语言也允许在使用scanf函数之前不必包含stdioh文件。scanf函数的一般形式为:

scanf(“格式控制字符串”, 地址表列);

其中,格式控制字符串的作用与printf函数相同,但不能显示非格式字符串,也就是不能显示提示字符串。地址表列中给出各变量的地址。地址是由地址运算符“&”后跟变量名组成的。

函数名:write

头文件:<ioh>

函数原型: int write(int handle,void buf,int len);

功能:获取打开文件的指针位置

参数:int handle 为要获取文件指针的文件句柄

void buf 为要写入的内容

int len 为要写入文件的长度

返回值:返回实际写入文件内容的长度

程序例:将字符串写入文件,并读取文件中的字符串,输出结果

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/12163174.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存