linux高级IO
背景:
???? write/writev
????? write函數把內存中的數據寫入文件描述符,通常這些數據是內存中的連續區域,如果我們應用程序需要把內存中多個非連續區域的數據寫入文件描述符,那么需要多次調用write函數,如果文件描述符是socket,那么需要發送多個數據包。這種情況下,write函數效率比較低。
???? writev將多個數據存儲在一起,將駐留在兩個或更多的不連接的緩沖區中的數據一次寫出去。
??? unlink
writev函數聲明:
#include <sys/uio.h>
ssize_t writev( int fd, const struct iovec *iov, int cnt ); iov是一組iovec結構的指針,iovec結構如下: struct iovec { char *iov_base; /*基本地址指針,指向緩沖區*/ size_t iov_len; /*指定緩沖區長度*/ }; readv函數將數據讀入內存中多個不連續緩沖區. unlink: 該函數刪除一個文件或者管道或者設備,但并不刪除文件的內容,只是把文件從文件所在的目錄移除,如果此時進程打開該文件,那么依舊可以對文件進行讀寫操作。轉載于:https://www.cnblogs.com/ThinkerNo-2/p/6939630.html
總結
- 上一篇: Android应用安装apk版本升级,适
- 下一篇: Nachos-Lab1-完善线程机制