请输入您要查询的百科知识:

 

词条 readv
释义

功能

readv将读入的数据按上述同样顺序散布读到缓冲区中。readv总是先填满一个缓冲区,然后再填写下一个。readv返回读到的总字节数。如果遇到文件结尾,已无数据可读,则返回0。

函数原型

ssize_t readv(int filedes,const struct iovec *iov,int iovcnt);

参数

filedes 文件描述符

iov 指向iovec结构数组的一个指针。

iovcnt 数组元素的个数

struct iovec{

void *iov_base;

size_t iov_len;

};

*iov_base是数据指针

iov_len是数据量

返回值

若成功则返回已读、写的字节数,若出错则返回-1

示例

#include <stdio.h>

#include <fcntl.h>

#include <unistd.h>

#include <sys/uio.h>

int main(int argc,const char **argv)

{

int fd;

struct iovec buffers[2];

buffers[0].iov_len=3;

buffers[0].iov_base=malloc(100);

buffers[1].iov_len=2;

buffers[1].iov_base=malloc(100);

fd=open(argv[1],O_RDONLY);

readv(fd,buffers,2);

close(fd);

char *str1=buffers[0].iov_base;

char *str2=buffers[1].iov_base;

printf("%s\",str1);

printf("%s\",str2);

return 0;

}

将示例程序保存为a.c,编译运行

gcc a.c

./a.out a.c

显示:

#in

cl

随便看

 

百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2025/3/23 3:52:48