随笔分类 - 系统编程 文件IO
摘要:文章目录 一 线程1.1 线程基本使用1.pthread_create2.pthread_exit3.pthread_join4.pthread_detach5. pthread_self练习3 1.2 线程同步和互斥1.2.1同步概念 1.3 无名信号量:又名信号灯1.3.1 无名信号灯的接口练习
阅读全文
摘要:文章目录 一、poll二、epoll三、异步IO 一、poll 基本原理与select一致, 也是轮询+遍历;唯一的区别就是poll没有最大文件描述符限制(使用链表的方式存储fd) 原型:int poll(struct pollfd *fds, nfds_t nfds, int time out);
阅读全文
摘要:文章目录 一、用select监听多个文件描述符二、select的优缺点 一、用select监听多个文件描述符 题目表述:监听鼠标和键盘的变化 标准模板 #include <stdio.h> #include <stdlib.h> #include <sys/time.h> #include <uni
阅读全文
摘要:文章目录 一、IO多路复用二、select附、一些补充fd_set……timeval 一、IO多路复用 IO多路复用就是IO被阻塞状态下,做其他事情 二、select 实现功能:监听;可以监听很多的文件描述符 原型:int select(int maxfd, fd_set *readfds, fd_
阅读全文
摘要:文章目录 一、阻塞与非阻塞二、阻塞好还是坏三、实现非阻塞读 一、阻塞与非阻塞 阻塞:读某些文件时,如果文件没有数据的话,往往会导致读操作会阻塞(休眠)(1%) 非阻塞:读某些文件时,如果文件没有数据的话,立即返回(99%) read原本是阻塞 阻塞 --> 非阻塞 int flags; flags
阅读全文
摘要:文章目录 一、fcntl二、ioctl 一、fcntl 通过fcntl可以设置、或者修改已打开的文件性质int fcntl(int fd, int cmd, …/* arg */);fd,指向打开文件cmd,控制命令,通过指定不同的宏来修改fd所指向文件的性质调用成功:返回值视具体参数而定;调用失败
阅读全文
摘要:文章目录 一、换个使用glibc函数与系统调用二、文件描述符复制(重定向)三、应用 一、换个使用glibc函数与系统调用 C标准库提供了实现两者间相互转换的函数 int fileno(FILE *fp) 把文件指针转换成文件描述符 FILE *fdopen(int fd, const char *m
阅读全文
摘要:文章目录 一、普通读写文件的特点二、存储映射读取2.1 mmap2.2 解除映射2.3 mmap函数主要用途2.4 注意事项 一、普通读写文件的特点 cpu执行一堆的函数,很耗费cpu资源,而且浪费时间中间一堆的缓存都是函数从内存开辟的,浪费内存资源,而且数据在各缓存间倒腾时也很耗费时间面对大量数据
阅读全文
摘要:文章目录 一、缓冲类型1.1 全缓冲1.2 行缓冲1.3 无缓冲 二、清除和设置文件缓冲区2.1 设置缓冲区函数2.2 清除文件缓冲区函数 三、应用场景(优化读写效率,适当调整缓冲区的大小) 一、缓冲类型 1.1 全缓冲 缓冲方式要求填满整个缓冲区后才进行1/O系统调用操作 第一次执行I/O操作时,
阅读全文
摘要:文章目录 一、0,1,2三个文件描述符二、库函数VS系统调用如何选择库函数、系统调用API的方式(区别)? 一、0,1,2三个文件描述符 stderr:终端(无缓冲区) stdin:键盘 stdout:终端(有缓冲区) echo hello > /dev/stderr echo hello > /d
阅读全文
摘要:文章目录 一、struct stat二、stat、fstat、lstat三、获取文件长度四、fstat、stat和lstat的区别: 一、struct stat 系统已经定义好了 位于:<sys/stat.h> struct stat { dev_t st_dev; //文件的设备编号 ino_t
阅读全文
摘要:文章目录 题目一题目二作业 题目一 写三行数据hello1、hello2、hello3 分别读出每行数据 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/types.h> #include <sys/s
阅读全文
摘要:文章目录 1.open和closeopen的注意事项 2. write3.read问题产生:无法读到数据当时程序当时结果原因分析 4.Iseek附 man1、2、3的解释 1.open和close 原型: int open (const char *pathname, int flags) path
阅读全文
摘要:文章目录 前言createrrno、perror、strerror 前言 硬着头皮看英文文献(man) 去写,去试 #include <sys/types.h> //数据类型重命名 #include <sys/stat.h> //获取文件属性(大小等)API #include <fcntl.h> /
阅读全文
摘要:文章目录 一、文件编程二、文件IO2.1 文件IO重要性2.2 根目录2.3 文件描述符 一、文件编程 文件io:一切皆文件!(VFS)虚拟文件系统 节省成本,把所有数据抽象成文件、有效管理:文件系统 -普通文件:C库函数、API(系统调用)、d目录文件、c/b设备文件(fread、fwrite)、
阅读全文
摘要:文章目录 一、框架二、概述2.1 Linux操作系统的构成 一、框架 嵌入式Linux C开发:文件io、进程、IPC、多线程、网络、数据库、GUI(图形化界面) 操作系统就在管理资源(软件资源、硬件资源) 操作系统的作用:文件管理、进程管理(多任务管理:进程、IPC、多线程)、内存管理、设备管理、
阅读全文