
Linux操作系统
Hansionz
但愿一切
展开
-
centos7当中安装mysql5.7版本
1.开启centos7服务器,并切换到root用户在CentOS7中默认安装有MariaDB,这个是MySQL的分支,但为了需要,还是要在系统中安装MySQL,而且安装完成之后可以直接覆盖掉MariaDB。将我们的centos7切换到root用户方便我们的mysql的安装2.下载并安装官方的mysql的yum源使用root用户在centos7服务器的/zsc/soft路径下执行以下命令cd /zsc/soft/yum -y install wgetwget -i -c http://dev.m原创 2020-05-11 20:33:27 · 585 阅读 · 0 评论 -
在谈volatile关键字
在学习C/C++中,我们曾经学习过了一个关键字volatile,我们知道volatile关键字的作用是保证内存的可见性,但是我们当时在学习的时候例子场景比较有限,例子是单个执行流,因为当时没有学习过多个执行流执行的情况,所以我们现在可以以多个执行流的代码为例子,再次学习volatile关键字。首先我们可以先写一个两个执行流死循环的例子:#include <stdio.h>#inc...原创 2018-11-09 13:03:51 · 241 阅读 · 0 评论 -
Liunx信号学习笔记
Liunx信号学习笔记一.信号的基本概念1.理解信号是什么?2.信号列表及分类二.信号的产生1.产生信号的概述终端驱动程序向前台发送信号硬件异常产生信号某种软件条件发生时通过信号通知进程2.各种产生信号方式详解通过终端按键产生信号一.信号的基本概念1.理解信号是什么?用户输入命令,在shell下启动一个前台进程用户按下ctrl +c,键盘输入产生一个硬件中断如果CPU当前正在执行这个进...原创 2018-11-02 13:26:37 · 393 阅读 · 0 评论 -
Linux多线程学习(2)--线程的同步与互斥及死锁问题(互斥量和条件变量)
Linux多线程学习总结一.互斥量1.名词理解2.什么是互斥量(mutex)3.互斥量的接口3.1 初始化信号量3.2 销毁信号量一.互斥量大部分情况,线程使用的数据都属于局部变量,局部变量存储在线程的栈帧中,这种变量属于单个线程,其他线程无法获得者种变量有些情况,一些变量需要在线程间共享,这样的变量称为共享变量(一般指全局变量),可以通过数据之间的共享来实现线程之间的交互多个线程并发的...原创 2018-12-02 22:59:13 · 555 阅读 · 0 评论 -
Linux多线程编程学习(1)--线程的概念和线程控制
Linux多线程编程学习总结一.线程的概念1.什么是线程?2.进程和线程的区别3.进程和线程的关系4.线程的优缺点4.1 优点4.2 缺点5.线程异常二.线程控制1.POSIX线程库2.创建线程3.进程ID和线程ID一.线程的概念1.什么是线程?在一个程序中的一个执行路线就可以叫做一个线程(thread)。线程是一个进程内部的控制序列。一个进程至少要存在一个执行线路。线程是在进程的地址...原创 2018-12-01 15:16:01 · 448 阅读 · 0 评论 -
Linux多线程学习(4) --读写锁和其他类型的锁以及线程安全
多线程学习总结(1):https://blog.youkuaiyun.com/hansionz/article/details/84665815多线程学习总结(2):https://blog.youkuaiyun.com/hansionz/article/details/84675536多线程学习总结(3):https://blog.youkuaiyun.com/hansionz/article/details/84766601...原创 2018-12-05 20:35:11 · 361 阅读 · 0 评论 -
Linux多线程学习(5)--C++实现一个线程池
多线程学习总结(1):https://blog.youkuaiyun.com/hansionz/article/details/84665815多线程学习总结(2):https://blog.youkuaiyun.com/hansionz/article/details/84675536多线程学习总结(3):https://blog.youkuaiyun.com/hansionz/article/details/84766601...原创 2018-12-05 21:22:07 · 394 阅读 · 1 评论 -
Linux多线程学习(3)--POSIX信号量及生产者消费者模型
Linux多线程学习总结一.生产者-消费者模型1. 什么是生产者-消费者模型2.生产者-消费者模型的三种关系3.基于BlockQueue实现生产者-消费者模型二.POSIX信号量1.什么是POSIX信号量2.初始化信号量3. 销毁信号量4. 等待信号量5.发布信号量6.基于POSIX信号量实现的环形队列模拟的生产者-消费者模型一.生产者-消费者模型1. 什么是生产者-消费者模型在线程的同步和...原创 2018-12-03 17:06:24 · 796 阅读 · 0 评论 -
进程间关系及守护进程
进程间的三种关系及守护进程一.进程间关系1.进程组2.作业2.1 作业概念2.2 作业控制3.会话二.守护进程(Daemon)1.守护进程概念2.创建守护进程3.daemon函数一.进程间关系1.进程组每个进程除了有一个进程ID之外,还属于一个进程组。进程组是一个或多个进程的集合。通常,它们与同一作业相关联,可以接收来自同一终端的各种信号。每个进程组有一个唯一的进程组ID。每个进程组都可以有...原创 2018-12-23 17:15:23 · 302 阅读 · 0 评论 -
基于UDP和环形队列实现的多人聊天室
畅聊系统1.多人聊天系统功能简介2.项目使用的第三方库3.多人聊天系统的原理图4.服务器维护的在线列表5.使用ncurses库绘制客户端6.序列化和反序列化7.客户端退出问题8.项目存在的问题9.项目扩展8.项目源码1.多人聊天系统功能简介多人聊天系统从名字就可卡出它的功能是支持多个人一起聊天,相当于qq的群聊功能。下边是该系统的主要工作流程:一个客户端将消息发送到网络中。服务器中存在两...原创 2019-02-04 22:34:46 · 898 阅读 · 0 评论 -
基础IO学习笔记(open等系统调用、inode、文件理解)
基础IO学习笔记一.系统调用接口open、close、write、read1.open2.close3.read一.系统调用接口open、close、write、read1.open参数解析:pathname:要打开或要创建的目标文件flags:下面的一个或多个常量进行&amp;quot;或&amp;quot;运算O_RDONLY 只读O_WRONLY 只写O_RDWR 读写打开O_CRWAT 文件不存...原创 2018-10-21 14:19:32 · 1003 阅读 · 0 评论 -
进程间通信学习笔记(管道、消息队列、共享内存、信号量)
前言:本篇文章主要介绍什么是进程间的通信及通信的目的,还有进程间通信的分类,重点介绍其中的一种通信方式管道。进程间通信1.什么是进程间的通信及进程间通信的目的a.什么是进程间的通信b.进程间通信的目的2.进程间通信的分类a.管道b.System V IPCc.POSIX IPC3.管道a.什么是管道?b.匿名管道的使用1.什么是进程间的通信及进程间通信的目的a.什么是进程间的通信进程间通信...原创 2018-10-28 12:49:18 · 694 阅读 · 0 评论 -
Linux操作系统的权限(进入目录、在目录中执行增删查(cd, touch, ls, rm, mv等)改文件动作, 需要哪些权限等等)
权限的基本概念权限,简单的来说,就是规定哪些事情能做、哪些事情不能做。那么,在Linux中有哪些基本权限呢?进入目录需要哪些权限、在目录中执行增删查(cd, touch, ls, rm, mv等)改文件动作需要哪些权限?Linux系统下的两种用户(root、普通用户)超级用户(root):可以在linux系统下做任何事情,没有限制(命令提示符为”#”)普通用户:在linux系统下只...原创 2018-07-11 11:48:46 · 592 阅读 · 0 评论 -
调试器gdb使用
Linux调试器-gdb注意: * 1.gcc/g++编译出来的二进制程序,默认是release版本的,没有调试信息 * 2.要使用gdb调试,必须在源代码生成二进制程序的时候,加上-g选项,产生调试信息 * 3.使用gdb调试的程序一定是运行时错误,语法错误会在编译时候报错1.gdb的使用在学习gdb的过程中一定要和在vs中调试代码对应起来: gdb 可执行文...原创 2018-09-11 21:53:16 · 293 阅读 · 0 评论 -
vim的常用命令练级
1.第一级(生存篇)要想在vim编译器下存活,首先要了解vim的三种模式及其他们相互之间的转化:正常/命令模式 (Normal Mode)插入模式(Insert Mode)末行模式(Last Line Mode)下面是三种模式之间的转化:(刚开始进入vim是正常模式)正常模式转化为插入模式有三种方法:a(向光标后插入)、o(向下一行插入)、O(向上一行插入)插入模式转...原创 2018-09-08 21:26:41 · 416 阅读 · 0 评论 -
Linux操作系统下C语言实现一个进度条
进度条要求:实现的进度条必须是动态递增的,而且要实现进度说明x%,另外,还有应该实现一个旋转的光标,表示正在加载中。解决思路:对于进度条,每次输出的比前面多一个,在每次输出之前回车一下并且睡眠一下在输出;对于x%可以根据循环变量来确定;对于旋转光标,可以设置一个数组[|/=\\]每四个一循环输出刚好是以顺时针循环。注意:1.C语言中\n代表回车并换行。\r表示换行。(回车代表的是...原创 2018-09-11 09:03:25 · 1191 阅读 · 0 评论 -
进程深入学习笔记(3)--进程的程序替换(exec)和一个简单的shell实现
进程深入学习笔记1.进程的程序替换(exec)(1).替换原理1.进程的程序替换(exec)(1).替换原理用fork创建子进程后执行的是和父进程相同的程序,当然可以执行不同的分支,如果我们用fork创建一个子进程之后让子进程做和父进程同样的事,那么这个子进程没有任何意义。所以在fork之后,我们应该调用exec函数用来替换子进程的程序和数据,让子进程执行和子进程不同的程序。当进程调用exe...原创 2018-10-11 15:41:37 · 2008 阅读 · 0 评论 -
除了vim, 还有哪些常用的牛逼的编辑器, 之间的区别和优缺点
1.VimVim是从 vi 发展出来的一个文本编辑器。它具有代码补完、编译及错误跳转等方便编程的功能,在程序员中被广泛的被使用。和Emacs并列成为Lunix系统用户最喜欢的编辑器。2. EclipseEclipse是一款很酷的开源代码编辑器,它拥有代码高亮和智能提示等强大的功能。在Eclipse中,完全胜任以下编程语言的工作——Python, R, Ruby, JavaScript, Na...原创 2018-09-21 12:28:17 · 1680 阅读 · 0 评论 -
linux开发工具学习(vim、gdb、gcc/g++、makefile)
linux开发工具学习一. 编译器vim1.vim的常用操作总结2.vim的简单配置二.编译器gcc/g++1.一. 编译器vim1.vim的常用操作总结单独总结于我的另一篇博客:https://blog.youkuaiyun.com/hansionz/article/details/825335142.vim的简单配置二.编译器gcc/g++1....原创 2018-09-21 21:40:29 · 837 阅读 · 0 评论 -
浅析僵尸进程和孤儿进程
浅析僵尸进程和孤儿进程一.僵尸进程1.什么是僵尸进程2.一个维持30秒僵尸进程的例子3.僵尸进程的危害二.孤儿进程1.什么是孤儿进程2.一个例子说明孤儿进程一.僵尸进程1.什么是僵尸进程2.一个维持30秒僵尸进程的例子3.僵尸进程的危害二.孤儿进程1.什么是孤儿进程2.一个例子说明孤儿进程...原创 2018-09-27 21:07:17 · 448 阅读 · 0 评论 -
进程深入学习笔记(1)
进程学习笔记1.进程概念2.描述进程(PCB)(1)怎么管理进程?(2)描述进程(3)task_struct中的内容3.组织进程4.查看进程信息5.获取进程的标识符(PID)6.创建进程(fork)(1)fork函数(2)写时拷贝(3)fork的常规用法(4)vfork和fork的区别7.进程状态(1)有哪些进程状态呢?(2)修改进程状态8.僵尸进程和孤儿进程9.进程的优先级(1)查看系统的进程(...原创 2018-09-27 21:08:41 · 332 阅读 · 0 评论 -
进程深入学习笔记(2)
前言:本篇博客是接着我的上一遍博客:进程深入学习笔记(2)继续对进程一些相关概念的学习理解。进程深入学习笔记1.环境变量2.程序地址空间3.进程终止4.进程等待5.进程程序替换1.环境变量2.程序地址空间3.进程终止4.进程等待5.进程程序替换待完成...原创 2018-09-28 11:16:50 · 409 阅读 · 0 评论 -
Lnuix操作系统常用命令总结
ls指令语法:ls[选项][目录或者文件] 功能:对于目录,列出该目录下所有的子目录和文件;对于文件,列出文件名以及其他信息 常用选项: &gt; * -a ,列出该目录下的所有文件,包括以.开头的隐含文件 * -i ,输出每个文件的节点(iNode)索引信息 * -l ,除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来pwd指令语法: pwd 功能: 显...原创 2018-07-02 14:29:09 · 2579 阅读 · 0 评论