IO
文章平均质量分 66
满山的猴子我的腚最红
这个作者很懒,什么都没留下…
展开
-
scanf、printf、string函数族
【代码】scanf、printf、string函数族。原创 2024-05-15 17:02:49 · 375 阅读 · 0 评论 -
非阻塞模式下的读写操作
实现文件IO的非阻塞模式的读写操作。设置为非阻塞模式后,读写不会阻塞,实现标准IO的非阻塞模式的读写操作。原创 2024-05-15 16:56:56 · 262 阅读 · 0 评论 -
信号灯集,消息队列
System V的信号灯是一个或者多个信号灯的一个。两个进程实现通信,一个进程循环从终端输入,另一个进程循环打印,当输入quit时结束。其中的每一个都是单独的计数信号灯。而Posix信号灯指的是单个计数信号灯。添加消息:按照类型将消息添加到已经打开的消息队列末尾 msgsnd。在不同的进程间,通过相同的key值,打开相同的信号灯集。在不同的进程中,通过相同的key值,拿到相同的消息队列。用户可以在消息队列中添加消息、读取消息等。msgctl对消息队列的操作,删除消息队列。创建或打开信号灯集semget。原创 2023-11-01 15:57:36 · 100 阅读 · 0 评论 -
进程间的通信
共享内存实现进程间通信,是操作系统在实际物理内存开辟一块空间,一个进程在自己的页表中,将该空间和进程地址空间上的共享区的一块地址空间形成映射关系。创建管道文件成功后,只是对应在磁盘中有这个文件了,并没有对应的内存,只有在一个进程用open打开这个文件后,这个管道缓冲区(数组)才会开辟存在。6) 无名管道的大小是固定的,管道一旦满,写操作就会导致进程阻塞,管道的大小是64K。10)当管道中有数据,将写端关闭,读操作可以执行,之后数据读完,可以继续读取(非阻塞 ),直接返回0。原创 2023-10-31 08:35:41 · 61 阅读 · 0 评论 -
IO线程同步互斥条件变量-10.27
1.破坏“不可剥夺”条件:一个进程不能获得所需要的全部资源时便处于等待状态,等待期间他占有的资源将被隐式的释放重新加入到 系统的资源列表中,可以被其他的进程使用,而等待的进程只有重新获得自己原有的资源以及新申请的资源才可以重新启动,执行。信号量代表某一类资源,其值表示系统中该资源的数量,信号量值>0,表示有资源可以用,可以申请到资源,继续执行程序,信号量值原创 2023-10-30 19:13:18 · 80 阅读 · 0 评论 -
IO线程及相关函数
3)多线程安全性差,因为其中一个线程崩溃可能会对其他线程造成影响,多进程间相互独立,安全性高。线程和进程都参与统一的调度。2)为了提高系统的性能,许多操作系统规范里引入了轻量级进程的概念,也被称为线程。1)由于进程的地址空间是私有的,因此在进程间上下文切换时,系统开销比较大。1)进程间相互独立,而同一个进程内的线程间共享进程内所有的资源。调度和资源:线程是系统调度的最小单位,进程是资源分配的最小单位。3)在同一个进程中创建的线程共享该进程的地址空间。进程是资源分配的最小单位,线程是cpu调度的最小单位。原创 2023-10-29 13:35:22 · 66 阅读 · 0 评论 -
IO进程及相关函数
进程创建后,进程进入就绪态,当CPU调度到此进程时进入运行态,当时间片用完时,此进程会进入就绪态,如果此进程正在执行一些IO操作(阻塞操作)会进入阻塞态,完成IO操作(阻塞结束)后又可进入就绪态,等待CPU的调度,当进程运行结束即进入结束态。CPU调度进程时会给进程分配时间片(几毫秒~十几毫秒),当时间片用完后,cpu再进行其他进程的调度,实现进程的轮转,从而实现多任务的操作。系统会为每一个进程分配0-4g的虚拟空间,0-3g(用户空间)是每个进程所独有的,3g-4g(内核空间)是所有进程共有的。原创 2023-10-27 18:36:50 · 80 阅读 · 0 评论 -
IO,库-10.24.25
gcc编译四步:预处理(展开头文件,替换宏定义,删除注释)、编译(检查错误,生成汇编文件)、汇编(生成二进制文件)、链接(生成可执行文件)注意:更新静态库,所有的可执行文件需要重新编译,更新动态库,所有的可执行文件不需要重新进行编译,直接执行。由于windows和linux的本质不同,因此二者库的二进制是不兼容的分为:动态库和静态库。1)静态库:静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态。静态库的命名规则:lib是库的前缀,xxx库名, .a后缀(扩展名)原创 2023-10-26 18:32:54 · 74 阅读 · 0 评论 -
目录IO及小练习
练习:用目录IO函数实现ls -l 和ls -i功能。2、closedir 关闭目录2。3、readdir 读目录文件。4、chdir 修改当前所处路径。1、打开目录:opendir。二、获取文件属性函数stat。原创 2023-10-25 20:11:49 · 78 阅读 · 0 评论 -
文件IO及常用函数
没有缓冲机制,每一次读写文件都会进行一次系统调用,操作文件用的是文件描述符。可以操作linux下的所有文件类型。文件IO指的就是系统调用函数接口,不同的操作系统系统调用函数接口不同,标准IO是在文件IO之前封装的libc库函数。原创 2023-10-24 13:42:06 · 55 阅读 · 0 评论 -
IO入门day1
a+:初始读指针在文件开始位置,写指针在文件结束位置,如果只调用读指针,那么读指针从刚开始位置后移,一旦调用写指针,读写指针合二为一,读指针去到写指针的位置。文件内部有文件指针,文件用文件指针操作,流只是起到了一个媒介的作用,封装原来的接口等,开辟缓冲区,减少系统调用。3)标准IO默认打开了三个流,stdin(标准输入)、stdout(标准输出)、stderr(标准错误)标准I/O库的所有操作都是围绕流(stream)来进行的,在标准I/O中,流用FILE *来描述。(一个文件是可以被重复打开)1。原创 2023-10-20 18:36:01 · 62 阅读 · 0 评论 -
文件IO操作
文件IO默认打开了三个文件描述符,分别是 0(标准输入),1(标准输出),2(标准错误)系统自动降低文件权限:mode&(~umask) (不同系统:umask大小不同)操作任意类型的文件b c - l s p 不能操作d。进行操作,非负整数 (>=0),依次分配。没有缓冲机制,每次调用都会引起系统调用。不同进程打开相同文件,文件指针各不相同。读写操作 read write。在系统(posix)关闭文件 close。定位操作 lseek。原创 2023-09-18 12:34:16 · 80 阅读 · 0 评论 -
标准IO函数
标准IO函数标准IO函数查看错误码 vi -t EEXIST打开文件:fopen freopen1)fopen 打开文件a+:初始读指针在文件开始位置,写指针在文件结束位置,如果只调用读指针,那么读指针从刚开始位置后移,一旦调用写指针,读写指针合二为一,读指针去到写指针的位置2)freopen关闭文件:fclose。原创 2023-09-17 23:37:13 · 92 阅读 · 0 评论 -
标准IO概念及特点
文件内部有文件指针,文件用文件指针操作,流只是起到了一个媒介的作用,封装原来的接口等,开辟缓冲区,减少系统调用。3)标准IO默认打开了三个流,stdin(标准输入)、stdout(标准输出)、stderr(标准错误)索引使用:1.vi -t要查找的内容 (查找宏,数据类型等)FILE是数据类型(结构体),FILE*结构体指针。scanf--》标准输入缓冲区---》终端输入。printf--》标准输出缓冲区---》终端。‘b’:块设备文件(sd卡 硬盘等)qq。3)不缓冲:没有缓冲区,标准错误。原创 2023-09-16 13:06:07 · 101 阅读 · 0 评论