C语言中的Write函数

我想知道一个问题,那就是Write函数所需要的参数handle的值与Write函数的效果之间有什么关系。handle的值我通常见别人用handle=open("xxx",... 我想知道一个问题,那就是Write函数所需要的参数handle的值与Write函数的效果之间有什么关系。 handle的值我通常见别人用handle = open("xxx", O_WRONLY | O_CREAT | O_TRUNC, S_IREAD | S_IWRITE))来取得,我不知道这里究竟是判断什么来取得handle的值的。 handle的值在write函数中究竟有什么作用?
write(1,"string",15); 为什么能够与printf的效果相同,这里的1的位置就是handle的位置,handle是否能看作“功能选择子(Func descriptor)”呢? handle是一个术语, 它一般情况下究竟是做什么用的? 望高手赐教。
展开
 我来答
四舍五不入6
高粉答主

2019-10-24 · 还没有填写任何签名哦
四舍五不入6
采纳数:27 获赞数:71370

向TA提问 私信TA
展开全部

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函数

longinus_dean
2007-11-04 · TA获得超过2282个赞
知道小有建树答主
回答量:1097
采纳率:50%
帮助的人:1524万
展开全部
handle只是一个句柄,是一种模糊的逻辑上的语言元素,本身类似一个资源指针的作用,但是它不是指针(实际上handle的类型可能是任何东西,甚至是char类型,int类型,任何东西,因为本身是逻辑的表示,标准不会对细节作出规定)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
皇家救星1985
2007-11-04 · TA获得超过1131个赞
知道大有可为答主
回答量:1579
采纳率:0%
帮助的人:1668万
展开全部
句柄啊

你可以简单的理解为指针

虽然两者还是有区别的,用但可以通过句柄获得指针
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lesun82
推荐于2018-02-27
知道答主
回答量:7
采纳率:0%
帮助的人:0
展开全部
哇!两百分,好慷慨!

在这个情况中,你可以把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不光止可以代表结构体指针,一个抽象的概念而已。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yinser
2007-11-04 · TA获得超过220个赞
知道小有建树答主
回答量:192
采纳率:0%
帮助的人:170万
展开全部
write()写文件函数
原形:int write(int handle,char *buf,unsigned len)
用法:write(文件句柄,缓冲区地址,缓冲区字节长度<最大65534>);
功能:将缓冲区的数据写入与handle相联的文件或设备中,handle是从creat、open、dup或dup2调用中得到的文件句柄。对于磁盘或磁盘文件,写操作从当前文件指针处开始,对于用O_APPEND选项打开的文件,写数据之前,文件指针指向EOF;对于设备,字节被直接传送到设备中;
返回值:实际写入的字节数(不包括回车符),出错时返回-1。
头文件:io.h
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式