Linux操作系统
一杆梅子酒丶
这个作者很懒,什么都没留下…
展开
-
文件操作详解
C语言(标准库IO接口)打开、关闭文件path:文件路径名moder:只读r+:可读可写w:只写,文件不存在则创建,若文件存在则清空原有内容w+:相较于w,多出了可读操作a:追加写打开,若文件不存在则创建,每次总是写到文件末尾a+:相较于a,多出了可读操作返回值:文件的操作句柄(文件流指针)fp:文件的操作句柄读写文件ptr:用于接收数据的缓冲区size:一次要读取的字节大小nmemb:一次要读取多少个 sizestream:fopen返回的文件流指针返回值原创 2020-10-07 18:33:27 · 293 阅读 · 0 评论 -
Linux静态库与动态库的生成和使用
静态库与动态库的生成和使用库文件实际上就是封装了一大堆已经编译完成的代码文件,通过链接这个库进而获取到相应函数实现。动态库的生成动态库的打包:gcc -c -fPIC child.c -o child.ogcc -shared child.o -o libmychild.so动态库生成的链接器:gcc-fPIC:生成目标代码时产生位置无关代码,动态库会在虚拟地址空间的共享区中加载一份-share:要生成的是动态库而不是可执行程序动态库的命名:lib 是前缀 &n原创 2020-10-06 20:55:32 · 156 阅读 · 0 评论 -
Linux多线程(线程控制、同步与互斥、生产者消费者模型、线程池)
什么是线程?现在有一个机床工厂,加工零部件,工厂中的工人是真正干活的人。若工厂中只有一个工人,则同一时间只能完成一个零部件的加工。如何实现同时加工多个零件?第一种方式: 多建几个厂房,一个厂房中至少有一个工人第二种方式:一个厂房中多招几个工人线程的功能:多任务处理多创建几个进程,一个进程就有一个pcb,能够串行化的完成一个任务在一个进程中多创建几个pcb,因为pcb是调度程序运行的描述,因此有多少个pcb就会有多少个执行流程在之前我们说进程就是一个pcb,是程序动态运行的描述,通过p原创 2020-10-02 22:02:57 · 582 阅读 · 0 评论 -
Linux进程信号
信号:软件中断用于通知一个事件的发生,会打断当前进程的操作去处理这个事件;前提:必须识别这个信号信号有生命周期:信号的产生信号在进程中的注册信号在进程中注销信号的处理信号种类有很多,每个都代表不同事件:使用 kill -l 命令查看:62种1~31:继承 unix 而来,非可靠信号(信号有可能会丢失,丢失事件),也叫 非实时信号34~64:可靠信号(信号不会丢失),也叫 实时信号信号的产生硬件产生信号:ctrl + c(中断)ctrl + |(退出)ctrl + z(原创 2020-09-27 11:53:03 · 150 阅读 · 0 评论 -
Linux文件权限
一、Linux文件权限 每个Linux文件具有四种访问权限:可读(r)、可写(w)、可执行(x)和无权限(-)。 利用ls -l命令可以看到某个文件或目录的权限,它以显示数据的第一个字段为 准。第一个字段由10个字符组成,如下: &nb...转载 2020-09-26 19:16:45 · 183 阅读 · 0 评论 -
Linux进程间通信
进程间通信目的数据传输:一个进程需要将它的数据发送给另一个进程资源共享:多个进程之间共享同样的资源通知事件:一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了某种事件(如进程终止时要通知父进程)进程控制:有些进程希望完全控制另一个进程的执行(如Debug进程),此时控制进程希望能够拦截另一个进程的所有陷入和异常,并能够及时知道它的状态改变进程间通信发展管道System V进程间通信POSIX进程间通信进程间通信分类管道:数据流传输匿名管道命名管道System原创 2020-09-26 11:22:36 · 222 阅读 · 0 评论 -
Linux进程控制
进程创建fork在linux中fork函数时非常重要的函数,它从已存在进程中创建一个新进程。新进程为子进程,而原进程为父进程。返回值:子进程中返回0,父进程返回子进程id,出错返回-1进程调用fork,当控制转移到内核中的fork代码后,内核做:分配新的内存块和内核数据结构给子进程将父进程部分数据结构内容拷贝至子进程添加子进程到系统进程列表当中fork函数返回,开始调度器调度vfork创建子进程,与父进程共用同一块虚拟地址空间,但是会出现调用栈混乱。为了防止调用栈混乱,因此需要原创 2020-09-24 19:59:40 · 232 阅读 · 0 评论 -
Linux进程概念、环境变量、虚拟地址空间
进程是什么?用户角度:正在运行的程序操作系统角度:操作系统对运行中程序的描述信息,即进程描述符,统称PCB在Linux中描述进程的结构体叫做task_structtask_struct是Linux内核的一种数据结构,它会被装载到RAM(内存)里并且包含着进程的信息PCB中的描述信息:内存指针:包括程序代码和进程相关数据的指针,还有和其他进程共享的内存块的指针程序计数器:程序中即将被执行的下一条指令的地址上下文数据:进程执行时处理器的寄存器中的数据标识符PID(进程ID):描述进程的唯一标原创 2020-09-24 19:27:19 · 345 阅读 · 0 评论