readv writev 簡介 一次讀寫多個緩衝區
阿新 • • 發佈:2018-12-26
一個小例子說明函式使用:
結構說明:
struct iovec {
void * iov_base //緩衝區地址
size_t iov_len //緩衝區輸入/輸出長度
}
#include "util.h" #include <sys/uio.h> int main(int argc , char **argv) { struct iovec v[2]; char buf1[] = "nihao"; char buf2[] = "fuck me"; v[0].iov_base = buf1; v[0].iov_len = 3; // 輸入/輸出 3個位元組 v[1].iov_base = buf2; v[1].iov_len = 4; //輸入/輸出 4個位元組 int n = writev(1,v,2); printf("\n write bytes:%d\n" , n); puts("reading from stdin"); n = readv(0,v,2); printf("read bytes:%d\n",n); printf("buf1:%s\n" ,buf1); printf("buf2:%s\n",buf2); return 0; }