计算机基础
renjieDLUT
这个作者很懒,什么都没留下…
展开
-
进程间通信(IPC)
文章目录进程间通信(IPC)共享内存简介系统调用接口例子生产者、消费者进程间通信(IPC)进程间通信,InterProcess Communication。进程间通信的方式有:管道、消息队列、共享内存、信号量共享内存简介可实现两个进程访问同一个逻辑内存。共享内存是由IPC为进程创建的一个特殊的地址范围,出现在该进程的地址空间中,其他进程可以将同一段共享内存连接到它们自己的地址空间中。所有进程都可以访问共享内存中的地址。系统调用接口#include<sys/tpyes.h>#inc原创 2020-11-12 16:03:54 · 540 阅读 · 0 评论 -
进程创建、在进程中启动程序、等待进程结束
进程进程进程标识进程创建取得进程号fork系统调用在进程中启动程序exec函数族等待进程结束waitpid函数进程进程是一个正在执行的程序的实例,由一下元素组成程序的当前上下文,程序当前的执行状态程序的当前执行目录程序访问的文件和目录程序的访问权限内存以及其他分配给进程的系统资源进程标识进程最重要的属性是进程号(PID),以及父进程号(PPID),一个进程有唯一的进程号,如果一个进程创建了一个子进程,那么它的进程号就是子进程的父进程号。1号进程(init) :负责引导系统、启动守护进原创 2020-11-10 16:55:28 · 326 阅读 · 0 评论 -
c++11标准
目录autoauto的使用限制autoauto的使用限制auto变量必须在定义时初始化,类似于const关键字auto a; //错误auto a1=3; //正确定义在一个auto序列的变量必须始终推到同一类型auto a=10,b=5.; //错误auto a=10,b=5 ; //正确如果初始化表达式是引用或const,则去除引用或const语义int a{10};int &b=a;auto c=b; //c的类型为int,而非int&原创 2020-09-06 19:07:27 · 633 阅读 · 0 评论 -
进程间通信2
消息队列消息队列提供了一个从一个进程向另一个进程发送一块数据的方法。每个数据块都被认为是有一个类型,接收进程接收的数据块可以有不同的类型值。消息队列也有管道一样的不足,每个消息的最大长度是有上限的(MSGMAX),每个消息队列的总字节数是有上限的(MSGMNB),系统上消息队列的总数也有一个上限(MSGMNI)cat /proc/sys/kernel/msgmax #查看IPC对象数据结构内核为每个IPC对象维护一个数据结构struct ipc_perm{ key_t _key;原创 2020-08-31 18:41:48 · 113 阅读 · 0 评论 -
进程间通信1
进程同步与互斥顺序程序特征:顺序性、封闭性、确定性、可再现性并发程序特征:共享性、并发性、随机性互斥:由于各进程要求共享资源,而且有些资源需要互斥使用,因此各进程间竞争使用这些资源,进程的这种关系为进程间互斥。系统中某些资源一次只允许一个进程使用,这样的资源为临界资源或互斥资源。在进程中涉及到互斥资源的程序段叫临界区。例:两个小孩挣钱同一个玩具同步:多个进程需要互相配合共同完成一项任务。例:公共汽车安全行驶司机与售票员进程间通信目的数据传输:一个进程需要将它的数据发送给另一个进程资源共享:多个原创 2020-08-31 17:03:54 · 144 阅读 · 0 评论 -
C++常见错误整理
@[renjie_dlut2016@163.com]前言上了年纪,才越来越反觉到整理问题的必要性。好的习惯不仅能提升代码质量、写代码的效率,还能有助我们理清思路。在此,鄙人立个flag,以后要常更新博客。运行过程很多时候代码能编译过,但不能保证程序在运行过程不错,在程序运行过程出现崩溃,内存溢出,出乎意料的结果等问题当代码中出现 除数为0的情况,运行会出现结果为** -1.#IND**(为0做除数)、1.#INF(数据越界)、1.#INF000(正无穷大)、-1.#INF000(负无穷大);解原创 2020-07-21 11:15:28 · 357 阅读 · 0 评论 -
C++输入与输出
相关类:istream、ostream、ifstream、ofstream、iostream、fstream标准流对象:cin:对应与标准输入流,用于从键盘读取数据,也可被重定向为从文件中读取数据。 cout:对应与标准输出流,用于向屏幕输出数据,也可被重定向为向文件中写入数据。 cerr:对应与标准错误输出流。...原创 2020-03-15 12:02:24 · 104 阅读 · 0 评论 -
c++之string类
string类是模板类。typedef basic_string<char> string;头文件:<string>初始化:string s("hello");string s1="hello";string s2(5,'h');赋值与连接:“=”运算符,“+”运算符。能比较string大小:“==”、“>=”、“>”、“<...原创 2020-03-15 11:22:19 · 135 阅读 · 0 评论 -
C++类、对象、模板与STL
类:一个特殊的概念,再C++语言中是一个新的数据类型,可以是对同一类型事物进行抽象处理,也可以是一个层次结构中的不同层次节点。类的声明与定义:类中的成员函数的定义方法:1.将类的成员函数都定义在类体内; 2.将类的成员函数的实现放在类体外,但如果类成员函数定义在类体外,需要用到域运算符“::”;...原创 2020-03-01 23:45:01 · 279 阅读 · 0 评论 -
C++入门(3)——结构体、共用体、枚举和自定义类型
结构体:将不同数据类型组合在一起形成一个新的类型。定义、声明(可在定义的时候声明)、引用结构体成员(成员运算符“ . ”、声明结构体指针,指向运算符“ -> ”)、初始化(在定义时可直接声明并赋值)、结构体嵌套、声明结构体指针变量:要引用结构体指针变量的成员,需要使用指向运算符“ -> ”;结构体嵌套:1.在结构体中定义子结构体,并声明子结构体变量;2.在定义时声明其...原创 2020-02-25 22:43:37 · 332 阅读 · 0 评论 -
C++入门(2)——数组、指针、引用
数组:将同一数据类型的数据按一定形式有序地组织起来,有序数据的集合就称为数组。声明: 数据类型 数组名[常量表达式]数组赋值方式:单一数组元素赋值、聚合赋值(数组声明的时候)其他概念:一维数组、二维数组、字符数组Tips:1. 数组元素的下标起始值为0而不是1; 2.定义数组时,其下标不能是变量,因为数组的大小不能动态定义; 3.聚合赋值只能在数组...原创 2020-02-24 14:35:09 · 296 阅读 · 0 评论 -
linux学习记录
系统的初始化与服务BIOS:主板上的一段程序,开机最先启动的程序,找到操作系统启动盘GRUB:grand unified bootloader 多重操作系统启动管理器MBR:master boot record 主引导记录,告诉电脑从该设备的某一分区来装载引导加载程序(boot loader);在读取MBR的时候我们可以选择想要启动的boot loaderboot loader...原创 2019-12-17 15:33:48 · 124 阅读 · 0 评论