C语言中的read和write怎么用?

作者&投稿:剑奖 (若有异议请与网页底部的电邮联系)
C语言中的read和write怎么用?~

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(
"HEllo1.txt",
O_RDWR
|
O_CREAT,
O_IRUSE
|
O_IWUSR);

fd2
=
open(
"HEllo2.txt",
O_RDWR
|
O_CREAT,
O_IRUSE
|
O_IWUSR);

n1 =
read(
fd1,
buffer, LENGTH);

n2 =
write(
fd2,
buffer, n1);



好了累死了,答案完全原创,希望对你有帮助

  1、函数名: write
  表头文件:#include
  定义函数:ssize_t write (int fd,const void * buf,size_t count);
  函数说明:write()会把指针buf所指的内存写入count个字节到参数fd所指的文件内。当然,文件读写位置也会随之移动。
  返回值:如果顺利write()会返回实际写入的字节数。当有错误发生时则返回-1,错误代码存入errno中。
  错误代码:
  EINTR 此调用被信号所中断。
  EAGAIN 当使用不可阻断I/O 时(O_NONBLOCK),若无数据可读取则返回此值。
  EBADF 参数fd非有效的文件描述词,或该文件已关闭。
  程序例:
#include#include#include#include#include#includeintmain(void){inthandle;charstring[40];intlength,res;/*Createafilenamed"TEST.$$$"inthecurrentdirectoryandwriteastringtoit.If"TEST.$$$"alreadyexists,itwillbeoverwritten.*/if((handle=open("TEST.$$$",O_WRONLY|O_CREAT|O_TRUNC,S_IREAD|S_IWRITE))==-1){printf("Erroropeningfile.
");exit(1);} strcpy(string,"Hello,world!
");length=strlen(string); if((res=write(handle,string,length))!=length){printf("Errorwritingtothefile.
");exit(1);} printf("Wrote%dbytestothefile.
",res);close(handle);return0;} structxfcb{charxfcb_flag;/*Contains0xfftoindicatexfcb*/charxfcb_resv[5];/*ReservedforDOS*/charxfcb_attr;/*Searchattribute*/structfcbxfcb_fcb;/*Thestandardfcb*/};  2、函数名: read
  表头文件:#include
  定义函数:ssize_t read(int fd,void * buf ,size_t count);
  函数说明:read()会把参数fd 所指的文件传送count个字节到buf指针所指的内存中。若参数count为0,则read为实际读取到的字节数,如果返回0,表示已到达文件尾或是无可读取的数据,此外文件读写位置会随读取到的字节移动。
  附加说明:如果顺利read()会返回实际读到的字节数,最好能将返回值与参数count 作比较,若返回的字节数比要求读取的字节数少,则有可能读到了文件尾、从管道(pipe)或终端机读取,或者是read()被信号中断了读取动作。当有错误发生时则返回-1,错误代码存入errno中,而文件读写位置则无法预期。
  错误代码:
  EINTR 此调用被信号所中断。
  EAGAIN 当使用不可阻断I/O 时(O_NONBLOCK),若无数据可读取则返回此值。
  EBADF 参数fd 非有效的文件描述词,或该文件已关闭。
  程序例:
#include#include#include#include#include#includeint main(void){void *buf;int handle, bytes;buf = malloc(10);/*Looks for a file in the current directory named TEST.$$$ and attemptsto read 10 bytes from it. To}if ((bytes = read(handle, buf, 10)) == -1) {printf("Read Failed.
");exit(1);}else {printf("Read: %d bytes read.
", bytes);}return 0;  

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 1024int n1, n2;int fd1, fd2;int buffer[BUFFES_SIZE];fd1 = open( "HEllo1.txt", O_RDWR | O_CREAT, O_IRUSE | O_IWUSR);fd2 = open( "HEllo2.txt", O_RDWR | O_CREAT, O_IRUSE | O_IWUSR);n1 = read( fd1, buffer, LENGTH);n2 = write( fd2, buffer, n1); 好了累死了,答案完全原创,希望对你有帮助

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( "HEllo1.txt", O_RDWR | O_CREAT, O_IRUSE | O_IWUSR);
fd2 = open( "HEllo2.txt", O_RDWR | O_CREAT, O_IRUSE | O_IWUSR);
n1 = read( fd1, buffer, LENGTH);
n2 = write( fd2, buffer, n1);

那两个函数是用在unix中的,在windows中对应的函数为fread和fwrite,具体用法参见函数原型…

用法都差不多!你会其中之一都行了…


C语言问题
Slide 2read语句与readln语句区别是: (1) read语句是一个接一个地读数据,在执行完本Read语句( 读完本语句中变量所需的数据)后,下一个读语句接着从该数据输入行中继续读数据,也就是说,不换行。如: Read(a,b); Read(c,d); Read(e); 如果输入数据行如下: 1□2□3□4□5□6□←┘则a,b,c,d,...

英语是如何成为世界上使用最广泛的语言的?
探索英语的魅力,read的过去分词解析 英语,这门源远流长的西日耳曼语系语言,早在中世纪黎明时分就在英国的土壤上扎根,凭借其殖民帝国的辉煌,如今已成为全球最广泛使用的语言,连接着全球各地的文化与交流。它的名字,盎格鲁-撒克逊的烙印,源自那些日耳曼部落,尤其是盎格鲁人,他们迁徙至大不列颠,建立了...

read的过去式是什么呢
首先,我们要了解英语中动词过去式的构成规则。在英语中,有些动词的过去式形式与原始形式相同,这些动词通常遵循“不规则动词”的规则。read便是其中之一。它的过去式和过去分词都是read,没有发生形态上的变化。这是因为英语语言的演变过程中,某些动词的过去式形式被固定下来,形成了特例。其次,在使用...

read是什么意思
这个词通过中古英语时期得以保留,并在现代英语中广泛使用。随着阅读的重要性和普及化,read的意义逐渐固定为阅读文字的行为。它成为了人们获取知识、学习和沟通的重要工具。Read这个词的广泛使用和持续存在,展示了阅读在人类文明和语言交流中的重要地位。通过阅读,人们得以传承和分享知识,增长智慧和见识。

read么读音是什么意思?
read在英语中有“阅读”之意。阅读是人们获取信息、知识、娱乐等方面不可或缺的手段,是了解世界、提高认知水平的必要途径。通过阅读可以拓宽视野、增长见识,还能提高语言表达能力。因此,阅读对于个人的成长和发展至关重要。read也可以是一个动词,表示“读取”或“朗读”。在现代化的数字化信息时代中,...

read的过去分词是什么
read的过去分词是read。下面是 在英语中,动词的过去分词是一种特殊的词性形式,它通常用于完成时态和被动语态中。对于动词“read”,它的基本意思是“阅读”,而在过去分词形式中,其拼写和原形保持不变。也就是说,“read”的过去分词形式和它的原形一样,都是“read”。这个变化反映了英语语言的语法...

read的过去式是什么
1. 形态不变的原因:在英语中,read是一个规则动词。它遵循一种特殊的变化规则,即过去式和过去分词形式与动词原形相同。这种情况在语言中并不罕见,有助于保持语言的简洁性。例如,“fire”这个词的过去式和过去分词也都是“fired”。2. 语法功能:虽然形态未变,但在句子结构中,read的过去式起到...

pascal中,文件的读入和读出问题
(4)read过程 形式:read(f,var表);功能:从磁盘文件f中,将数据依次读到var表表示的各个变量中。(5)write过程 形式:write(f,var表);功能:将var表所表示的各个变量的值依次写到磁盘文件f上。(6)close过程 形式:close(f);功能:关闭和f关联的磁盘文件,在写操作时自动产生一个文件结束标志...

read中文是什么意思?
读书是人类文明历程中不可或缺的一部分,中文中“read”的意思就是阅读。阅读可以带给我们知识、情感与精神的满足,有助于拓展我们的思维与视野,提高阅读理解能力,也有益于增强语言表达能力。因此,我们无论是生活中还是工作中,都应该重视阅读,让它成为我们生活不可或缺的一部分。在当今社会中,阅读...

read after me是什么意思?
在语言学习中,read after me也是一种常见的学习方法。学生可以先听老师或教材的录音读出单词或短语,然后跟着重复。通过反复练习,学生能够更加熟练地发音,加深对语言的理解和掌握。此外,read after me也可以在生活中发挥作用。比如在朗读诗歌或演讲时,读者可以先读一句,然后听众跟着重复,从而加强语言的...

资源县18977485540: C语言 write和read语句的基本用法 -
许拜利培: 你说的是pascal语言吧 c语言读入数据用是scanf或printf c++还可以用cin或cout scanf("数据类型",&要读入的变量); printf("数据类型和格式",要输出的变量); 数据类型和变量定义的关键字有关 下面给几个例子 数据类型 变量定义的...

资源县18977485540: 在C语言中要用到write和read函数要用到什么头文件 -
许拜利培: 1、要用到unistd.h头文件.2、 Write函数用法:write函数所在的头文件为 <unistd.h>write有两种用法.一种是:ssize_twrite(int handle, void *buf, int nbyte);handle 是文件描述符;buf是指定的缓冲区,即指针,指向一段内存单元;nbyte是...

资源县18977485540: C语言如何读或写文件
许拜利培: 对于文件,常用的3个: read/write 这是底层的系统调用 fread/fwrite 这是二进制的读写函数 fscanf/fprintf 这是格式化的读写函数

资源县18977485540: C语言文件中什么是“只读”和“只写”? -
许拜利培: r 只读 为输入打开一个文本文件(文件必须存在) w 只写 为输出打开一个文本文件(如没有文件,则新建)

资源县18977485540: c语言 write()、read()函数原型 -
许拜利培: 把指定数量的数据写入文件,若成功则返回写入的字节数,否则返回-1 int _write( int handle, const void *buffer, unsigned int count ); 这个例子中把字符串“hello”写入文件sample.txt中:int Handle; char String[ ]="hello"; Handle = _open("...

资源县18977485540: c语言文件读写 实例 -
许拜利培: C语言标准库提供了一系列文件I/O函数用于文件操作,比如fopen()用于打开文件、fread()、fwrite()用于读写文件、fseek()用于设置操作位置等等,一般C语言教程上都有文件I/O一章,细致内容,可以找本教科书学习一下. 下面的示例,是...

资源县18977485540: 语言文件操作怎么把文件1中读出的内容写到文件2中
许拜利培: read_file() 函数返回文件的内容,比如char * read_file(){ ... return ...}然后write_file()写出文件的时候把从read_file()里读取的内容,写到另外一个文件里

资源县18977485540: C语言自带的函数是怎么编写的 -
许拜利培: 这个很简单,1,这些函数调用的read()和write()2,而read和write的参数是操作系统标准化句柄,即读/写到标准化的输入输出端口;3,这些句柄有0,1,2,分别对应STDIN,STDOUT,STDERR;呵呵,兄弟,祝你好运啊

资源县18977485540: C++ 二进制文件读写函数read()和write()的原型有很多种吗?怎么用? -
许拜利培: read(unsigned char * buf,int num)这个可能不是标准原型,可能是自定义函数.因为函数声明中根本没有写从哪里读取数据(没有文件句柄).标准文件读写函数,一定会提供文件句柄参数的.类似于第二个read的第一个参数.这个自定义函数在内部写定了文件句柄了.

资源县18977485540: C语言程序设计 read write 函数问题 -
许拜利培: 12 write(fd,"thefjdkfjkft",20); 13 read(fd,buf,20); 12句写完之后,指针已经在末尾了 中间加一句,回复指针到文件头的操作.好像是rewind(fd);

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网