排序:
默认
按更新时间
按访问量

Linux下 文件描述符(fd)与 文件指针(FILE*)

一、文件描述符(fd) 我们都知道在Linux下一切皆文件。当然设备也不例外,如果要对某个设备进行操作,就不得不打开此设备文件,打开文件就会获得该文件的文件描述符fd( file discriptor), 它就是一个很小的整数,每个进程在PCB(Process Control Block)中保存...

2018-08-13 09:26:17

阅读数:2

评论数:0

栈和队列:2.队列(Queue)及其C语言实现

队列是线性表的一种,在操作数据元素时,和栈一样,有自己的规则:使用队列存取数据元素时,数据元素只能从表的一端进入队列,另一端出队列,如图1。 图1 队列示意图 称进入队列的一端为“队尾”;出队列的一端为“队头”。数据元素全部由队尾陆续进队列,由队头陆续出队列。 队列的先进先出原则 队...

2018-08-10 14:26:00

阅读数:7

评论数:0

栈和队列:1.栈(Stack)

栈,线性表的一种特殊的存储结构。与学习过的线性表的不同之处在于栈只能从表的固定一端对数据进行插入和删除操作,另一端是封死的。 图1 栈结构示意图 由于栈只有一边开口存取数据,称开口的那一端为“栈顶”,封死的那一端为“栈底”(类似于盛水的木桶,从哪进去的最后还得从哪出来)。 栈的“先进后出...

2018-07-26 16:58:56

阅读数:55

评论数:0

护眼色的RGB值

作为一名苦逼的程序员,就免不了整天面对着显示屏看代码和敲代码。长时间对着黑底白字难免会对眼睛造成伤害。   下面分享一个"网红护眼色" 色调:85;饱和度:123;亮度:205, R: 199; G: 237;  B: 204;   其实实际使用起来...

2018-07-26 10:24:56

阅读数:55

评论数:0

Linux操作系统下的多线程编程详细解析----条件变量pthread_cond_t那些事儿

推荐两个博文: http://www.cnblogs.com/Creator/archive/2012/04/18/2455584.html http://blog.csdn.net/sunboy_2050/article/details/6031723 (以下内容摘自上述两篇博文)   ...

2018-07-26 09:11:36

阅读数:9

评论数:0

OSD实现原理介绍

OSD的主要实现方法和类型     目前有两种主要的OSD实现方法:外部OSD发生器与视频处理器间的叠加合成;视频处理器内部 支持OSD,直接在视频缓存内部叠加OSD信息。     外部OSD发生器与视频处理器间的叠加合成的实现原理是:由一个MCU内建的字符发生器及显示 缓存,利用快速消隐...

2018-07-20 15:09:42

阅读数:45

评论数:0

线性表:7.C语言链表实现俄罗斯轮盘赌小游戏

俄罗斯轮盘赌,想必很多人都听说过,一种残忍的赌博游戏。游戏的道具是一把左轮手枪,其规则也很简单:在左轮手枪中的 6 个弹槽中随意放入一颗或者多颗子弹,在任意旋转转轮之后,关上转轮。游戏的参加者轮流把手枪对着自己,扣动扳机:中枪或是怯场,即为输的一方;坚持到最后的即为胜者。   本节实践项目同...

2018-07-17 11:21:05

阅读数:13

评论数:0

线性表:6.双向链表,可构成双向循环链表和C语言实现

之前接触到的链表都只有一个指针,指向直接后继,整个链表只能单方向从表头访问到表尾,这种结构的链表统称为 “单向链表”或“单链表”。 如果算法中需要频繁地找某结点的前趋结点,单链表的解决方式是遍历整个链表,增加算法的时间复杂度,影响整体效率。 为了快速便捷地解决这类问题,在单向链表的基础上,给各个结...

2018-07-17 08:55:58

阅读数:9

评论数:0

线性表:5.约瑟夫环,循环链表及其C语言实现

链表的使用,还可以把链表的两头连接,形成了一个环状链表,称为循环链表。 和它名字的表意一样,只需要将表中最后一个结点的指针指向头结点,就形成了一个环。 图1 循环链表 循环链表和动态链表相比,唯一的不同就是循环链表首尾相连,其他都完全一样。 实际应用:约瑟夫环问题 约瑟夫环问题,是一个...

2018-07-16 19:21:15

阅读数:29

评论数:0

线性表:4.结合顺序表和链表——静态链表及C语言实现

另外一种链式表示——静态链表,之前两篇说的都是动态表。 逻辑结构上相邻的数据元素,存储在指定的一块内存空间中,数据元素只允许在这块内存空间中随机存放,这样的存储结构生成的链表称为静态链表。 静态链表和动态链表的区别:静态链表限制了数据元素存放的位置范围;动态链表是整个内存空间。 图1 静...

2018-07-16 19:17:34

阅读数:38

评论数:0

Linux编程之自定义消息队列

我这里要讲的并不是IPC中的消息队列,我要讲的是在进程内部实现自定义的消息队列,让各个线程的消息来推动整个进程的运动。进程间的消息队列用于进程与进程之间的通信,而我将要实现的进程内的消息队列是用于有序妥当处理来自于各个线程请求,避免一窝蜂的请求而导致消息的异常丢失。想想socket编程里的list...

2018-07-13 14:48:21

阅读数:12

评论数:0

线性表:3.链表,单链表详解与C语言实现

逻辑结构上一个挨一个的数据,在实际存储时,并没有像顺序表那样也相互紧挨着。恰恰相反,数据随机分布在内存中的各个位置,这种存储结构称为线性表的链式存储。由于分散存储,为了能够体现出数据元素之间的逻辑关系,每个数据元素在存储的同时,要配备一个指针,用于指向它的直接后继元素,即每一个数据元素都指向下一个...

2018-07-12 16:44:43

阅读数:83

评论数:0

条件变量、pthread_cond_init

1.初始化条件变量pthread_cond_init#include <pthread.h>int pthread_cond_init(pthread_cond_t *cv,const pthread_condattr_t *cattr);返回值:函数成...

2018-07-10 20:35:29

阅读数:21

评论数:0

LINUX线程同步:原子操作、锁、二元信号量、信号量、互斥量、临界区、读写锁、条件变量等

注:摘自《程序员的自我修养》相关章节。 原子操作共享数据(全局变量或堆变量)的自增(++)操作在多线程环境下会出现错误是因为这个操作(一条c语句)被编译为汇编代码后不止一条指令,因此在执行的时候可能执行了一半就被调度系统打断,去执行别的代码。我们把单指令的操作称为原子的(Atomic),因为无论如...

2018-07-10 16:53:50

阅读数:30

评论数:1

pthread_cond_timedwait 实例

linux多线程编程,你还在用sleep么?用pthread_cond_timedwait吧摘要:多线程编程中,线程A循环计算,然后sleep一会接着计算(目的是减少CPU利用率);存在的问题是,如果要关闭程序,通常选择join线程A等待线程A退出,可是我们必须等到sleep函数返回,该线程A才能...

2018-07-09 13:40:33

阅读数:7

评论数:0

linux man使用方法 和centos安装中文man包

首先,man是manual的简称,中文说法可以是手册。在Linux世界中,许多新手请教某条命令的用法时, 好多不耐心的老手通常会用一条命令来回答这位无助的新手,而这条命令通常就是man开头。无助的新手敲上这条命令一看究竟,在终端上顿时显示出来了一屏幕的英文,老手的意思是,自己看看手册吗,可是看手册...

2018-07-09 11:29:01

阅读数:36

评论数:0

Linux Man手册的使用示例

 Linux的命令非常多,很多人在学一个命令时,首先想到的是使用百度或者谷歌,或者参考书上给出怎么使用的例子。但授人以鱼不如授人以渔,通过man该命令可以得到关于该命令的有用信息。当我们学会使用man文档时,将大大提升使用命令的能力。这里,本人认为更多人是不知道列出的选项怎么用,有什么规律,导致不...

2018-07-09 11:22:04

阅读数:12

评论数:0

C语言中static关键字的作用详解,全网最透彻

在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。(1)先来介绍它的第一条也是最重要的一条:隐藏。当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个源文件,一个是a.c,另一个是main.c。...

2018-07-09 09:41:29

阅读数:22

评论数:0

详解C中volatile关键字

 volatile提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址中读取数据。如果没有volatile关键字,则编译器可能优化读取和存储,可能暂时使用寄存器中的值,如果这个变量由别的程序更新了的话,将出现不一致的现象。下面举例说明。...

2018-07-05 16:46:36

阅读数:9

评论数:0

枚举类型详解

注:以下全部代码的执行环境为VC++ 6.0在程序中,可能需要为某些整数定义一个别名,我们可以利用预处理指令#define来完成这项工作,您的代码可能是:#define MON  1#define TUE   2#define WED  3#define THU   4#define FRI   ...

2018-07-05 15:51:51

阅读数:13

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭