linux系统编程 文件io

linux系统编程 文件io

1. 文件io讲些什么文件io这一章讲的是,如何调用Linux OS所提供的相关的OS API,实现文件的读写。1.1如何理解“文件IO”这个词IO就是input output的意思,文件io就是文件输入输出,也就是文件读写。 读写的是什么? 答:是数据。 不过读文件和写文件,到...

Linux系统应用编程---文件IO

Linux系统应用编程---文件IO

文件描述符files_struct *file结构体记录在task_struct结构体中,*file指向文件描述符。一个进程默认打开三个文件描述符  1. STDIN_FILENO 0 2. 3. STDOUT_FILENO 1 4. 5. STDERR_FILENO 2新打开文件返回文件...

系统编程之高级文件IO(十五)——poll,epoll简单使用和异步IO及总结

系统编程之高级文件IO(十五)——poll,epoll简单使用和异步IO及总结

一、poll基本原理与select一致, 也是轮询+遍历;唯一的区别就是poll没有最大文件描述符限制(使用链表的方式存储fd)原型:int poll(struct pollfd *fds, nfds_t nfds, int time out);POLLIN可读POLLPUT可写POLLERR异常n...

系统编程之高级文件IO(十四)——select优缺点

一、用select监听多个文件描述符题目表述:监听鼠标和键盘的变化标准模板#include <stdio.h> #include <stdlib.h> #include <sys/time.h> #include <unistd.h> #include...

系统编程之高级文件IO(十三)——IO多路复用-select

系统编程之高级文件IO(十三)——IO多路复用-select

一、IO多路复用IO多路复用就是IO被阻塞状态下,做其他事情二、select实现功能:监听;可以监听很多的文件描述符原型:int select(int maxfd, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, const struct ...

系统编程之高级文件IO(十二)——阻塞和非阻塞方式读取

系统编程之高级文件IO(十二)——阻塞和非阻塞方式读取

一、阻塞与非阻塞阻塞:读某些文件时,如果文件没有数据的话,往往会导致读操作会阻塞(休眠)(1%)非阻塞:读某些文件时,如果文件没有数据的话,立即返回(99%)read原本是阻塞阻塞 --> 非阻塞int flags; fla...

系统编程之高级文件IO(十一)——获取设置文件属性(fcntl、ioctl)

系统编程之高级文件IO(十一)——获取设置文件属性(fcntl、ioctl)

一、fcntl通过fcntl可以设置、或者修改已打开的文件性质int fcntl(int fd, int cmd, …/* arg */);fd,指向打开文件cmd,控制命令,通过指定不同的宏来修改fd所指向文件的性质调用成功:返回值视具体参数而定;调用失败:返回-1,并把错误信号设置给errno#...

系统编程之高级文件IO(十)——文件描述符操作(重定向)

系统编程之高级文件IO(十)——文件描述符操作(重定向)

一、换个使用glibc函数与系统调用C标准库提供了实现两者间相互转换的函数int fileno(FILE *fp)把文件指针转换成文件描述符FILE *fdopen(int fd, const char *mode)把文件描述符转换成文件指针int main(int argc, char **arg...

系统编程之高级文件IO(九)——存储映射

系统编程之高级文件IO(九)——存储映射

一、普通读写文件的特点cpu执行一堆的函数,很耗费cpu资源,而且浪费时间中间一堆的缓存都是函数从内存开辟的,浪费内存资源,而且数据在各缓存间倒腾时也很耗费时间面对大量数据时显得很吃力十二、存储映射读取2.1 mmap系统API最多6个参数头文件:#include 原型:void *mmap(voi...

系统编程之文件IO(八)——缓冲区的设置

一、缓冲类型1.1 全缓冲缓冲方式要求填满整个缓冲区后才进行1/O系统调用操作第一次执行I/O操作时,ANSI标准的文件管理函数通过调用malloc函数获得需要使用的缓冲区,默认大小为8192位置:/usr/include/stdio.h——#define _G_BUFSIZ 81921.2 行缓冲...

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。