自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 资源 (1)
  • 收藏
  • 关注

原创 Ubuntu开机启动黑屏,只有鼠标

问题背景前一天晚上还可以正常使用,第二天早上开机就开机黑屏,只有鼠标,记录下解决办法。问题原因可以通过ctrl+alt+F1~F6进入其他终端,说明系统本身没有什么问题,可能是因为桌面程序启动存在问题,卸载重装桌面启动程序即可。笔者的Ubuntu默认以gdm3启动桌面,卸载gdm3再重装不起作用。那就安装另一个桌面程序lightdm:1.打开tty2终端ctrl+alt+F22.安装桌...

2019-10-17 10:12:55 12490 13

原创 likelly()和unlikely()详解

参考文档:https://www.cnblogs.com/cdwodm/p/4448773.htmlhttps://blog.csdn.net/npy_lp/article/details/7175517Linux内核设计与实现gcc内建了一条指令用于优化,在一个条件经常出现,或者该条件很少出现的时候,编译器可以根据这条指令对条件分支选择进行优化。内核把这条指令封装成了宏,比如likely...

2019-07-02 23:51:50 884

原创 有限状态机的编程思想

在C语言编程中,有限状态机是一种编程思想。在编程过程中,也可以把程序分为几个状态,比如读数据状态、写数据状态、异常状态、超时状态等,用程序实现几个状态间的互相转换。使用有限状态机的思想编程,可以使自己的程序变得更加灵活,足够应对程序编写出来后更改需求的情况。一般只要该需求,整个程序都要重新写,若用上有限状态机的思想就可以很大程度上地应对该需求的情况。在程序中,程序可以大概按下图的模式去编写:#...

2018-11-13 22:54:32 1099

原创 Linux系统的bash程序

Linux系统的bash程序—对于标准库和系统库函数的应用#include <stdio.h>#include <stdlib.h>#include <sys/types.h>#include <pwd.h>#include <unistd.h>#include <glob.h>#include <str...

2018-11-05 11:45:11 235

原创 数据结构的线性关系

数据结构的线性关系线性关系:里面的每一个元素都是平等的,每个节点至多有一个前驱和一个后继。头部没有前驱,尾部没有后继。其结构类似于一维数组的结构。如下图所示:顺序存储结构删除操作:对某一元素进行删除,其后面的元素都要往前移动一个单位。浪费CPU资源插入操作:对数组中某一单元进行插入,后面的元素都要往后移动一个单位。操作麻烦。缺点:一次空间分配,大小恒定,如果空间不够,无解;如果没有用...

2018-10-21 22:11:40 2601

原创 基于Linux系统sqlite3数据库的学生信息管理系统

学生信息管理系统表: 学生信息表 入学的时候 --学号[主关键字] 姓名 性别 班级 籍贯 考试成绩表 考试的时候生产的 --学号[] 姓名 成绩 班级 教师表 老师 --名字 工号 教龄 班级功能: 学生信息添加 删除 根据姓名查找 教师信息的 添加 ...

2018-08-30 22:45:48 3255

原创 Linux系统的数据库编程举例

sqlite3_exec.c()函数的简单应用#include <stdio.h>#include <sqlite3.h>/* exec每找到一条记录,都会 调用该函数, 通过将记录 通过参数传给形参变量*/int sqlite3_cb_fun(void *para, int f_num, char **f_value, char **f_name)...

2018-08-30 22:04:39 662

原创 Linux系统的广播和组播

广播广播:在一个局域网内部,所有的终端都能够收到数据包。使用广播的发送数据,会使处于同一个局域网内部的所有用户都必须接收到数据,用户不能拒绝。 注意:在使用广播和组播时,发送方和接收方都要处于同一个局域网内。因为广播和组播只能在一个局域网内部发送数据。广播和组播与一般网络通信有所不同,网络通信传输的是数据包;广播传输的数据叫广播包,组播传输的数据叫组播包。 原理: 发送方发送广播包到交换机...

2018-08-27 21:46:20 1957

原创 Linux系统的服务器并发编程

在网络通信中,大部分情况都会使用TCP协议的网络通信方式,毕竟TCP协议的通信方式安全性高、数据不易丢失、还能远距离传输数据。但TCP协议并不能像UDP协议一样本身就具有并发特性,所以在编写TCP协议网络通信中,通常采用多路复用和多线程/多进程的方式实现服务器的并发,即一个服务器同时服务多个客户端。多路复用多路复用的相关函数会在程序中有注释。实现多路复用的程序如下: 头文件com.h...

2018-08-24 17:52:57 648

原创 基于Linux系统的一对多网络通信

例、编写一个从气象站获取天气信息的程序。气象站发送数据到服务器,服务器存储气象站发来的天气信息,客户端向服务器发出请求,获取天气信息;服务器就将天气信息发送给客户端。思路:气象站、服务器、客户端三者各有一个程序,气象站程序主要就向服务器发送天气信息。天气信息用一个结构体封装起来,结构体成员主要有消息类型(用于服务器区分是气象站的消息还是客户端的消息)、温度、湿度等天气状况,在这里只是模拟三...

2018-08-24 16:19:43 705

转载 Linux系统网络编程——套接字一对一通信

例程、用socket套接字实现进程间的一对一通信服务器端程序:server.c#include <stdio.h>#include <sys/types.h> /* See NOTES */#in

2018-08-13 23:27:49 261

原创 Linux系统的多线程编程

多线程线程概念线程可以看做是一个正在运行的函数,一个进程中至少有一个函数运行,那么也就是说一个进程至少有一个线程。在函数中创建出来的线程,彼此之间是兄弟关系。posix线程是一套线程标准,而不是一套实现。线程的标识pthread_t数据类型的线程标识符tid。在终端使用ps axm命令查看线程信息。 pthread_equal(tid1,tid2):比较两个线程标识,相...

2018-08-12 22:45:12 367

原创 Linux进程间通讯之信号量

信号量信号量用于进程同步互斥。信号量可以直接理解成计数器,信号量会有初始值>0,每当进程申请使用信号量,通过P操作来对信号量进行-1操作。当计数器(信号量)减到0时说明没有资源了,其他进程要访问就必须在临界区外等待,该进程执行完临界区操作之后,就会执行V操作来对信号量进行+1操作。 临界区:只能被一个进程同时使用(不可多个进程共享),要用到互斥。(1)创建信号量semget...

2018-08-12 22:28:26 119

原创 进程间通信——消息队列

消息队列(1)创建/打开消息队列msgget(key,msgflg):成功返回消息队列id,失败时返回-1。 key:和消息队列所关联的key值,key值由ftok()函数的返回值得到。 msgflg:标志位,IPC_CREAT|0666|O_EXCL。 IPC_CREAT :表示创建消息队列;0666表示用户对文件操作的权限;O_EXCL:如果创建的消息队列存在则出错,可省略不写。...

2018-08-12 21:55:49 162

原创 进程间的通信——共享内存

共享内存两个进程共享同一块内存,即同一块物理内存被映射到两个进程各自的进程地址空间中。所以两个进程都可以对这一块共享内存进行读写操作,同时可以扫描到共享内存中的数据。用C语言实现两个进程(程序)之间的单工通信,一方发送信息,一方接收信息。代码如下: shma.c程序:用于发送数据#include <stdio.h>#include <stdlib.h>#i...

2018-08-12 21:40:01 170

原创 基于Linux系统的流量控制程序的C语言代码

基于Linux系统的流量控制程序的C语言代码mytbf.h头文件ifndef MYTBF_H_#define MYTBF_H_typedef void mytbf_t;mytbf_t *tbf_init(int bits,int max);int gettoken(mytbf_t *tbf,int tknum);int returntoken(mytbf_t *tbf,i...

2018-08-11 16:56:19 1331

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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