摘要:
信号量是一个计数器,用于为多个进程提供对共享数据的访问。 函数1 #include <sys/sem.h> int semget(key_t key, int nsems, int flag); 该函数转换键值获取信号量ID, key键值的获取还是通过ftok函数。 返回值 :成功返回信号量ID, 阅读全文
摘要:
(共享内存,信号量,消息队列等方式时,有System v以及POXIS两种接口类型,这里介绍常用的systemV接口) 内核中的IPC结构(共享内存,信号量,消息队列)都用一个非负整数的标识符(identifier)加以引用。这里的标识符(identifier)是IPC对象的内部名。 为了使多个合作 阅读全文
摘要:
与无名管道不同,有名管道FIFO可以在两个无关进程间使用。 #include <sys/stat.h> int mkfifo(const char* path, mode_t mode); 上述函数用于生成一个FIFO文件,其中的mode参数与open函数中的mode相同。当创建了FIFO文件后,要 阅读全文
摘要:
无名管道只能在具有公共祖先的两个进程间使用,且建议半双工使用(因为历史上就是半双工,虽然有些系统支持全双工管道)。 无名管道通过pipe函数创建 #include <unistd.h> int pipe(int fd[2]); 其中:参数fd返回两个文件描述符,fd[0]只用来读,是输出,fd[1] 阅读全文
摘要:
在使用pthread_mutex_timedlock时,由于错误理解,导致并没有产生想要的效果。这里记录下: 先用pthread_mutex_lock进入锁,再用pthread_mutex_timedlock进入锁,结果发现第二次超时并没有其效果。 代码模拟如下: 1 #include <strin 阅读全文
摘要:
三大特性: 1、封装 把客观的事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的类进行信息的隐藏。 2、继承 继承是父类和子类之间共享数据和方法的一种机制。 3、多态 在收到消息时,对象要予以响应。不同的对象收到同一消息可以产生完全不同的结果,这一现象称为多态。 五 阅读全文
摘要:
1) 意图 表示一个作用于某对象结构中各元素的操作。它允许在不改变各个元素的类的前提下定义作用于这些元素的新操作 2) 结构 其中: Visitor为该对象结构中ConcreteElement的每个类声明一个Visit操作 ConcreteVisitor实现每个有Visitor声明的操作 Eleme 阅读全文
摘要:
1) 意图 定义一个操作中的算法骨架,而将一些步骤延迟到子类中。Template Method使得子类可以不改变一个算法的结构即可以重定义该算法的某些特定步骤 2) 结构 其中: AbstractClass(抽象类)定义抽象的原语操作,具体的子类将重定义它们以实现一个算法的各步骤;实现模板方法,定义 阅读全文
摘要:
记录下MySQL的C语言API的使用 1、Linux环境,操作系统是ubuntu 执行:sudo apt-get install libmysqlclient-dev 这样系统默认头文件路径(/usr/include)下就会多了一个mysql的文件夹,里面就是API头文件; 动态库路径/usr/li 阅读全文
摘要:
1) 意图 定义一系列算法,把它们一个个封装起来,并且可以使它们可以相互替换。此模式使得算法可以独立于使用它们的客户而变化(行为定义为一个类) 2) 结构 其中: Strategy定义所有支持的算法的公共接口 ConcreteStrategy 定义某个具体算法 Context通过Strategy接口 阅读全文