美文网首页
Linux IO总结

Linux IO总结

作者: 清明小雨 | 来源:发表于2015-10-16 22:41 被阅读0次

    1. 文件IO,不带缓冲的IO

    函数:read, write, open, close, pread, pwrite
    这类函数直接调用系统调用,可以通过调整参数中的bufsize来加速文件读写,但是bufsize小于32字节时,因为OS的预读技术导致没有时间不会再增长;当bufsize>磁盘块长度时,时间不会再降低

    2. 标准IO,带缓冲的IO

    函数:fopen, fclose, getc, fgetc, gets, fgets, puts, fputs, printf...
    这类函数会自动进行缓冲区分配,选择正确的块长度,有全缓冲,行缓冲,不缓冲三种方式。一般文件IO都是全缓冲,外部设备或者stdin,stdout都是行缓冲,stderr是不缓冲的

    3. 非阻塞IO

    在open函数中设置O_NONBLOCK或者在fcntl函数中设置

    int fd = open("a.txt", O_RDWR | O_NONBLOCK);
    

    或者

    int val = fcntl(fd, F_GETFL, 0);
    fcntl(fd,F_SETFL, val | O_NON_BLOCK);
    

    4. IO多路转接

    5. 存储映射IO

    相关文章

      网友评论

          本文标题:Linux IO总结

          本文链接:https://www.haomeiwen.com/subject/lulacttx.html