C语言中的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 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、要用到unistd.h头文件。
2、 Write函数  用法:  write函数所在的头文件为   write有两种用法。一种是:  ssize_twrite(int handle, void *buf, int nbyte);  handle 是文件描述符;  buf是指定的缓冲区,即指针,指向一段内存单元;  nbyte是要写入文件指定的字节数;返回值:写入文档的字节数(成功);-1(出错)  write函数把buf中nbyte写入文件描述符handle所指的文档,成功时返回写的字节数,错误时返回-1.  另一种是:write(const char* str,int n)  str是字符指针或字符数组,用来存放一个字符串。n是int型数,它用来表示输出显示字符串中字符的个数。  write("string",strlen("string");表示输出字符串常量3、程序示例:
  #include   #include   #include   #include   #include   #include   int main(void)  {  int *handle; char string[40];  int length, res;/* Create a file named "TEST.$$$" in the current directory and write a string to it. If "TEST.$$$" already exists, it will be overwritten. */  if ((handle = open("TEST.$$$", O_WRONLY | O_CREAT | O_TRUNC, S_IREAD | S_IWRITE)) == -1)  {  printf("Error opening file.
");  exit(1);  }  strcpy(string, "Hello, world!
");  length = strlen(string);  if ((res = write(handle, string, length)) != length)  {  printf("Error writing to the file.
");  exit(1);  }  printf("Wrote %d bytes to the file.
", res);  close(handle); return 0; }

write()写文件函数

原形:int write(int handle,char *buf,unsigned len)

功能:将缓冲区的数据写入与handle相联的文件或设备中,handle是从creat、open、dup或dup2调用中得到的文件句柄。

对于磁盘或磁盘文件,写操作从当前文件指针处开始,对于用O_APPEND选项打开的文件,写数据之前,文件指针指向EOF;对于设备,字节被直接传送到设备中。

扩展资料:

用法

头文件:<unistd.h>

write有两种用法。一种是:ssize_t write(int fd, const void *buf, size_t nbyte);

fd:文件描述符;

buf:指定的缓冲区,即指针,指向一段内存单元;

nbyte:要写入文件指定的字节数;

返回值:写入文档的字节数(成功);-1(出错)

write函数把buf中nbyte写入文件描述符handle所指的文档,成功时返回写的字节数,错误时返回-1.

另一种是: write(const char* str,int n)

str是字符指针或字符数组,用来存放一个字符串。n是int型数,它用来表示输出显示字符串中字符的个数。

write("string",strlen("string");表示输出字符串常量

参考资料来源:百度百科-write函数



handle只是一个句柄,是一种模糊的逻辑上的语言元素,本身类似一个资源指针的作用,但是它不是指针(实际上handle的类型可能是任何东西,甚至是char类型,int类型,任何东西,因为本身是逻辑的表示,标准不会对细节作出规定)

句柄啊

你可以简单的理解为指针

虽然两者还是有区别的,用但可以通过句柄获得指针

哇!两百分,好慷慨!

在这个情况中,你可以把handle看作一个结构体的指针,而这种struct不会在头文件中定义,我写段简单的例子:

头文件:
int write(int handle);
int open(char* filename);

实现文件:
struct file{
int size;
void* data;
};

int open(char* filename){
file* fp = 0;
/*
打开文件后,
把文件内容读取到fp->data,
*/
…………
return (int)fp;/*返回时候转换为int类型*/
}

int write(int handle){
file* fp = (file*)handle;
/*然后对fp进行相关操作*/
.....
}

这样就把file类型的内部细节给隐藏以来了,
你在使用的时候只看头文件,
那些write,和open之内的函数,
仅仅需要知道handle代表什么,
而不需要知道handle所指向的结构的内部细节!
当然handle不光止可以代表结构体指针,一个抽象的概念而已。

write()写文件函数
原形:int write(int handle,char *buf,unsigned len)
用法:write(文件句柄,缓冲区地址,缓冲区字节长度<最大65534>);
功能:将缓冲区的数据写入与handle相联的文件或设备中,handle是从creat、open、dup或dup2调用中得到的文件句柄。对于磁盘或磁盘文件,写操作从当前文件指针处开始,对于用O_APPEND选项打开的文件,写数据之前,文件指针指向EOF;对于设备,字节被直接传送到设备中;
返回值:实际写入的字节数(不包括回车符),出错时返回-1。
头文件:io.h


write为什么变为wrote
具体来说,write是动词的基本形态,表示一般的动作或状态。而当我们想要表达这个动作发生在过去时,就需要使用过去式。在英语中,大部分动词的过去式是通过在动词原形后添加特定的后缀来构成的,write变为wrote就是这样一个例子。这种形态的变化可以帮助我们区分不同的时间节点,使得语言的表达更为精确。此外...

write的过去式和过去分词是什么求教
write的过去式是wrote,过去分词是written。让我们详细了解下这两个形式。在英语中,动词的过去式和过去分词有不同的形态,这对于理解语言历史和掌握英语语法是非常关键的。动词“write”意为“写”,它的过去式和过去分词形式并不复杂。当“write”变为过去式时,简单的规则告诉我们只需要在词尾添加“-...

write的同音词是什么?
这两个单词虽然发音相近,但它们的意义和用法截然不同。在口语中,人们可能会因为发音习惯或者口音问题而误将两者混淆,但在标准英语中,它们是不应被混淆的。尽管它们在发音上有相似之处,但它们各自拥有独特的拼写和用法。因此,“write”的同音词是“right”。这是一种语言现象,反映了语言中的细微...

fortran语言中的do语句、write语句分别具体杂用
DO 10 I=1,100 I从1循环到100 循环体到行号10为止,包含行号10。即 10 S=S+T 内嵌循环 DO 20 K=1,N 20 T=T*K 很明显是计算阶乘的 WRITE(*,100)((A(I,J),J=1,2),I=1,3)第一个星号表示使用默认输出设备,即显示器 100表示输出格式为行号100的语句,即 100 FORMAT(1X,2I4)...

writedown的用法
基本用法解释:1. 基本定义:`writedown` 是一个动词短语,通常用于描述将信息或数据记录下来的过程。在计算机科学和编程语境中,它可能指的是将数据写入文件或数据库的操作。在日常用语中,它可能意味着写下笔记、留言或其他文本信息。2. 在不同场景的应用:在编程语境中:当程序员使用编程语言和工具...

write的过去分词是什么?
write的过去分词是written。以下是 在英语中,动词的过去分词是一种非谓语动词的形式,表示动作已经完成或被动完成。对于动词write而言,其过去分词形式是written。过去分词在句子中可以作为定语,修饰名词,表示被修饰名词的某种状态或已经完成的动作。例如,在句子"The letter has been written."中,written...

write语句在r语言里是什么意思
学会使用R中write方法输出matrix了,以前没有用它,只是觉得可能很难,所以没有仔细去看,今天仔细看了一个,发现原来很简单。语法如下:write(x, file = "data",ncolumns = if(is.character(x)) 1 else 5,append = FALSE, sep = " ")输出顺序是先输出第1列,然后第2列,至第n列,在结果...

Fortran语言中 加了一句write输出语句会不会影响输出的值啊
加一句write(*,*)相当于按任意键继续 程序

写字write是什么意思?
写字是使用文字或符号来表达思想、感情、信息的一种行为。写字最早起源于古代人类社会的刻画和绘画,随着人类语言的发展和文字的出现,写字也逐渐成为了一种重要的传播方式和文化形式。写字是人类文明的重要组成部分,它可以记录下人类智慧的结晶,成为人类文化传承的重要载体。同时,写字也是一种交流方式,通过...

关于write
write to 是写信给某人 he writes to his lover every week.write by 想不出来例举。。 如果是written by还好。。write on 是在什么上写 i wrote a letter on a sheet of paper.write in 是用什么话写,用什么语言写,用什么方式写 she wrote a letter in english....

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

兖州市17581665272: C语言中write - file()什么意思
吴殷盐酸: write函数所在的头文件为 <unistd.h> write有两种用法.一种是: ssize_twrite(int handle, void *buf, int nbyte); handle 是文件描述符; buf是指定的缓冲区,即指针,指向一段内存单元; nbyte是要写入文件指定的字节数;返回值:写入文档的字节...

兖州市17581665272: C语言中的Write函数 -
吴殷盐酸: 哇!两百分,好慷慨! 在这个情况中,你可以把handle看作一个结构体的指针,而这种struct不会在头文件中定义,我写段简单的例子: 头文件: int write(int handle); int open(char* filename); 实现文件: struct file{ int size; void* data; }; int open...

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

兖州市17581665272: linux下C语言中的write函数在windows下C语言中对应的函数是什么? -
吴殷盐酸: 这个不同系统之间不一定有每一个函数的对应的,你可以用fwite实现写入的功能,fputs()也可以

兖州市17581665272: 文件操作open与fopen和read与fread的区别 -
吴殷盐酸: 在 C 语言中,open( )、close( )、read( )、write( ) 子函数是低级的文件操作函数. 而 fopen( )、fclose( )、fread( )、fwrite( ) 子函数是高级的文件操作函数. 前者打开的是文件句柄;而后者打开的是一个文件指针.

兖州市17581665272: C语言write函数的返回值问题 -
吴殷盐酸: 大多数情况下,write成功后返回的写入字节数都等于你传入的长度.但是如果你要写的长度超过了的文件的最大可能时,比方说,你的磁盘还剩下128个字节,这时你向磁盘上的某个文件一次性写512个字节,返回值就是128,只有前128个字节成功写入.再比如,你用write写的不是一个普通文件,而是设备文件/socket等,那也可能返回值小于你指定的值,这就可能是具体设备的限制等,比如写入的数量超过了缓冲大小等.

兖州市17581665272: C语言头文件#include<unistd.h>的作用 -
吴殷盐酸: #include<unistd.h> 符号常量是POSIX标准定义的unix类系统定义符号常量的头文件,包含了许多UNIX系统服务的函数原型,例如read函数、write函数和getpid函数 unistd.h在unix中类似于window中的windows.h! #ifdef WIN32 #include <windows....

兖州市17581665272: C语言中fwrite函数求解释 -
吴殷盐酸: void类型当作“万金油”,是为了函数的通用.调用时,需要把具体的类型强制成void类型.比如,一个字符串buffer: char buffer[1024];在调用fwrite()的时候强制转换: (void *)buffer

兖州市17581665272: C语言如何读或写文件
吴殷盐酸: 对于文件,常用的3个: read/write 这是底层的系统调用 fread/fwrite 这是二进制的读写函数 fscanf/fprintf 这是格式化的读写函数

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