- 博客(18)
- 收藏
- 关注
原创 Linux进程间通讯(IPC机制)——共享内存与消息队列
多个进程在物理内存上有内存空间是共享的,多个进程在各自的逻辑地址空间写入数据,或者获取数据,使用同一个物理空间,不需要数据的拷贝。
2023-01-12 11:33:03
144
原创 Linux进程间通讯(IPC机制)——信号量
信号量:多个进程访问相同资源会出现冲突,信号量是特殊的变量,值>=0。值的大小代表可用资源的数目同步进程:同一个时刻,只能有一个进程访问资源。进程间同步临界资源:同一个时刻只允许一个进程访问的资源临界区:访问临界资源的代码段p操作:获取资源v操作:释放资源。
2023-01-12 11:32:02
195
原创 Linux信号与进程间通信
用法kill(pid,SIGINT);返回值为整型,如果返回值为0则成功,放回置为-1则为错误。用法:signal(SIGINT,SIG_DFL);//当收到信号时,按默认方式处理。用法:signal(SIGINT,SIG_ING);//当收到中断信号时,忽略。1.SIG_DFL 系统默认处理方式。2.SIG_IGN 忽略响应方式。函数 void 函数名(int)handler 响应方式。3.用户自定义的响应方式。收到signum信号。
2023-01-12 11:16:55
106
原创 Linux中进程复制
如果更改了变量的值,则子进程页表中改变值的页的偏移量会改变,他们的物理地址就不同了。复制进程,返回值如果大于0则为父进程,返回值等于0则为子进程。//对int进行的重命名。复制后的新进程的pid比前一个进程加一,其他进程状态等相同。如果不更改变量值,则子进程共享父进程数据,则物理内存相同。父子关系,被复制的进程叫父进程,复制后的进程叫子进程。头文件#include用逻辑地址%4k = 商 余数。余数:在物理地址上的偏移量。问下面代码会输入出几个A。问下面代码会输出几个A。
2023-01-10 10:55:16
510
原创 Linux中静态库和动态库
(3)使用静态库 链接静态库:gcc -o main main.c -L . -l foo (-L 后指定路径 -l 后指定库文件名称)(2).o 生成共享文件:gcc -shared -fPIC -o libfoo.so add.o mul.o。(2)创建静态库:ar cry libfoo.a add.o mul.o。(4)共享库文件的使用:gcc -o main main.c -lfoo。(1) add.c mul.c 编译 add.o mul.o。(1).c编译成.o文件。
2023-01-10 10:44:18
164
原创 Linux中进程基础命令
*并行:**在同一个时刻,能够同时执行多个进程,每核CPU在每一时刻只能执行一个进程,所以要同时进行多个进程的运行需要多核CPU。**并发:**在某一时间段,需要处理多个进程,单核CPU,在某一时刻只能处理一个任务,多个进程通过进程的切换,进程执行。OS对进程描述:PCB(进程控制块)记录当前的进程的运行状态。CMD:进程启动时使用到的命令(ps:[命令]表示内核命令)操作系统(OS)通过管理进程,让进程完成用户任务。创建进程:先创建PCB,后创建进程实体。PID 进程号:OS用来区分进程标识。
2023-01-10 10:42:31
301
原创 Linux文件的压缩和解压
tar cvf 文件名.tar 待打包的文件1 待打包的文件2…将所有待打包的文件打包为文件名.tar文件。tar zcvf 压缩包名.tar.gz 待压缩文件1,待压缩文件2…将所有待压缩文件压缩为压缩包。tar zxvf 压缩包名.tar,.gz 将压缩包解压。gzip 文件名 生成.tar.gz压缩包。gzip -d 压缩包名 生成.tar包。z 使得tar有压缩和解压功能。f 制定目标为文件而不是设备。t 显示包中的内容而不释放。将所有文件先打包再压缩。
2023-01-10 10:40:38
131
原创 Linux上C语言编译与调试
命令 set follow-fork-mode parent。命令:gcc -o 执行文件名 依赖的所有.c文件 -g。词法分析、语法分析、语义分析、代码优化、汇总符号。gcc -o 执行文件名 依赖的所有.c文件。 生成.o文件的命令(gcc -o) 生成.c文件的命令(gcc -c) 生成.c文件的命令(gcc -c) 删除所有的.o文件(rm -rf)可执行文件名:所有依赖文件的.o文件。缺点:如果依赖文件过多,则会太麻烦。依赖文件.o:依赖文件.c。依赖文件.o:依赖文件.c。
2023-01-10 10:39:20
554
原创 文件的类型与文件编辑命令(Linux)
n,m s/原先字符串/新的字符串/g(从n行到m行将所有的原先的字符串替换为新的字符串) ex:1,10s/hello/world/g。:n,m s/原先字符串/新的字符串(从n行到m行将第一个原先的字符串替换为新的字符串) ex:1,10 s/hello/world。ex: rw-rw-r–:三个为一组,前三个权限是所属者(u),中间三个为组权限(g),最后三个为其他权限(o)ex:chmod u-r:所属者权限去掉r权限;ex:chmod 764:u权限为rwx g权限为rw- o权限为r–
2023-01-10 10:35:25
570
原创 快速排序:单向划分函数(C++)
常见的快速排序有两个指针分别指向数组的两头,这两个指针双向地对数组进行遍历。今天我学习了另一种快速排序的方法,叫做单向划分函数快速排序。
2023-01-07 16:34:49
238
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人