linux
文章平均质量分 78
so_u
May the odds be ever in your favor
展开
-
linux下的简单配置----vim配置,中文输入法配置,gdb安装
更多知识点:linux目录索引vim的简单配置步骤:打开Linux终端—>输入 vim .vimrc 命令—>会打开一个编辑器,在里面添加如下内容:" 自动语法高亮 " syntax on " 检测文件类型 " filetype on " 检测文件类型插件 " filetype plugin on " 不设定在插入状态无法...原创 2018-02-08 13:46:09 · 1851 阅读 · 0 评论 -
Linux:信号(2):从内核看信号
想要有顺序地学习Linux,入口在这里哦:Linux:目录索引一、信号在内核中的表示1.信号在内核中的三种状态①抵达态②未决态③阻塞态(屏蔽态)④三中状态的对比2.三种状态在内核中的存储①使用结构体存储②结构体类型sigset_t③操作结构体sigset_t的函数3.s...转载 2018-05-12 19:08:28 · 586 阅读 · 0 评论 -
进程间通信----信号量
更多linux知识点:linux目录索引1. 什么是信号量 信号量的本质是数据操作锁,它本身不具有数据交换的功能,而是通过控制其他的通信资源(文件,外部设备)来实现进程间通信,它本身只是一种外部资源的标识。信号量在此过程中负责数据操作的互斥、同步等功能。 个人理解: 信号量就是具有原子性的计数器,当使用了资源时,计数器就要减一,表示可用的资源就少了一个,当用完这个资源...原创 2018-05-06 15:10:09 · 461 阅读 · 0 评论 -
线程的查看以及利用gdb调试多线程
1. 线程的查看首先创建两个线程:#include <stdio.h>#include <unistd.h>#include <pthread.h>#include <stdlib.h>#in原创 2018-05-20 15:56:47 · 100819 阅读 · 16 评论 -
linux下的线程ID和进程ID
在描述线程ID和进程ID之前我们先来分清楚几个概念:1. 用户级线程和内核级线程什么是用户级线程? 用户级线程内核的切换由用户态程序自己控制内核切换,不需要内核干涉,少了进出内核态的消耗,但不能很好的利用多核Cpu,目前Linux pthread大体是这么做的。什么是内核级线程? 切换由内核控制,当线程进行切换的时候,由用户态转化为内核态。切换完毕要从内核态返回用...原创 2018-05-21 19:44:58 · 6960 阅读 · 0 评论 -
网络编程-------基于TCP协议的客户端--服务器socket实例
1. socket socket指的是某一主机的 ip地址和端口号 2. socket常见API创建socket #include <sys/types.h> /* See NOTES */ #include <sys/socket.h> int socket(int domain, int type, int protoco...原创 2018-06-23 22:33:50 · 625 阅读 · 0 评论 -
网络编程--------基于UDP的服务器--客户端socket实例
1. UDP协议的传输特点2. 客户端和服务器传输流程图3. 实现代码1. UDP协议的传输特点 不面向连接:udp传输时不需要建立连接,需指定我要跟谁进行数据传输 面向数据报:以数据包的形式进行传输 可靠传输:没有建立连接,那么在发数据和收数据时就有可能发生丢数据的情况 2. 客户端和服务器传输流程图3. 实现代码注:这...原创 2018-06-23 22:47:58 · 1261 阅读 · 0 评论 -
信号量--------多线程下的生产者消费者模型
1. 生产者消费者模型 从现实生活中的角度出发,对于这个模型,我们可以总结为3 2 1原则,即: 三种关系: 生产者与生产者:互斥关系,我生产的时候你不能生产 消费者与消费者:互斥关系,我消费的时候你不能消费 生产者与消费者:同步关系,我生产了你才能消费,我消费完了你才能生产 两个角色 生产者 消费者 一个中间媒介 生产出来的产品...原创 2018-06-16 11:03:50 · 1026 阅读 · 0 评论 -
HTTP协议
一、什么是HTTP二、HTTP之URL四、HTTP之urlencode和urldecode五、HTTP之请求消息Request六、HTTP之响应Response七、HTTP的状态码八、HTTP的方法九、实现一个简单的HTTP服务器一、什么是HTTP HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,...原创 2018-06-30 20:21:06 · 580 阅读 · 0 评论 -
Linux:进程间关系和守护进程
1. 进程间关系1.0 进程组1.1 作业1.2 会话2. 守护进程2.0 什么是守护进程2.1守护进程的特点2.2 守护进程存在的原因2.3 创建守护进程的几个重要部分4. 系统提供的daemon函数1. 进程间关系1.0 进程组 进程组是一个或多个进程的集合。 每个进程除了有一个进程ID之外,还属于一个进程组...原创 2018-06-27 20:11:25 · 405 阅读 · 0 评论 -
TCP协议------三次握手&&四次挥手
前言一、三次握手1. 过程分析,如图:2. 三次握手的目的二、四次挥手1. 过程分析2. TIME_WAIT 状态 3. 解决 TIME_WAIT 状态引起的 bind失败的方法前言 TCP的他点有面向连接和可靠性等特点,其中面向连接体现在三次握手和四次挥手,今天来看一下三次握手和四次挥手 一、三次握手1. 过程分析,如图:...原创 2018-07-06 11:53:56 · 486 阅读 · 0 评论 -
Linux:信号(1):signal函数、pause函数、alarm函数
原 Linux:信号(1):signal函数、pause函数、alarm函数 2018年05月09日 02:42:09 阅读数:93 ...转载 2018-05-12 19:03:08 · 2499 阅读 · 1 评论 -
linux:线程的创建、线程等待、线程终止、线程分离
1. 什么是线程 线程是进程执行内部的一个执行分支,在一个进程内部运行的多种执行流;内部本质上是多个线程在同一个地址空间运行;第一个pcb称之为主线程;有多个线程就有多个执行流;一个进程至少有一个线程2. 图解线程PCB1所代表的进程通过vfork创建一个子进程,子进程再vfork一个新的子进程,以此类推产生两个新的子进程;此时PCB1、PCB2、PCB3都指向同一块虚拟地址空间...原创 2018-05-18 17:20:31 · 13217 阅读 · 0 评论 -
进程间通信------共享内存
更多linux知识点:linux目录索引1. 什么是共享内存 共享内存(Shared Memory),指两个或多个进程共享一个给定的存储区。进程可以将同一段共享内存连接到它们自己的地址空间中,所有进程都可以访问共享内存中的地址,就好像它们是由用C语言函数malloc分配的内存一样。而如果某个进程向共享内存写入数据,所做的改动将立即影响到可以访问同一段共享内存的任何其他进程。 ...原创 2018-05-04 21:35:43 · 1016 阅读 · 0 评论 -
linux基本命令
命令详细介绍查看《鸟哥的linux私房菜基础学习篇(第三版)》1. 几个简单工具命令时间与日期:date 语法: date 列出当前系统时间 date +%Y/%m/%d 显示日期 date +%H:%M 显示时间 date +%s 将当前系统时间转换为时间戳 date -d@时间戳 ...原创 2018-03-23 21:12:20 · 816 阅读 · 0 评论 -
linux知识点----进程控制
更多知识点:linux目录索引进程创建———fork()函数: pid_t fork(void)说明:父进程创建子进程后,父子进程交替运行运行过程中,子进程死亡,父进程存在,子进程称为僵尸进程,且僵尸进程不可人为杀死,必须等到父进程结束后,才会将其回收运行过程中,父进程死亡,子进程存在,子进程称为孤儿进程,由1号进程托管,死亡后由1号进程负责回收fork()函数返...原创 2018-04-08 11:51:15 · 578 阅读 · 0 评论 -
linux输出彩色进度条
准备:在这之前需要知道换行和回车的区别,即\r和\n。在linux中 \r 让光标回到当前行的开始,\n让光标从下一行开始。还需要知道linux中 缓冲区写满后才会输出。实现彩色进度条,必然要清楚色彩的变化:printf("\033[3%im[%-100s][%d%%][%c]\033[0m\r",i%8,bar,i,lable[i%4]);\033[33m变色内容\033[0m第一个\原创 2018-04-06 15:41:29 · 260 阅读 · 0 评论 -
linux知识点----进程
更多知识点:linux目录索引进程概念从用户角度:进程就是程序的一次动态执行过程从操作系统角度:操作系统分配内存,CPU时间等系统资源的基本单位特点1.每一个进程都有自己独立的虚拟地址空间和进程状态2.进程是分配资源的最小单位(基本单位)进程和程序的区别和联系联系:1.程序=文件(静态的可执行文件)2.进程=执行中的程序=程序+执行状态3.同一个程...原创 2018-04-06 16:16:10 · 656 阅读 · 0 评论 -
linux目录索引
linux:环境的简单配置linux:基本命令linux:进程linux:进程控制linux:进程替换linux:模拟实现shelllinux:进程间通信—-消息队列linux:进程间通信—–管道linux:进程间通信—-共享内存linux:进程间通信—-信号量...原创 2018-04-20 15:21:10 · 3001 阅读 · 3 评论 -
linux:进程替换
更多知识点:linux目录索引概念 进程替换是指把当前进程替换为一个新的程序。替换进程使用 exec 系列函数。进程被exec 替换后,运行中的程序就开始执行由 exec 指定的新的可执行程序中的代码。新进程的 PID、 PPID 与原进程完全一样。 并且, exec 一般是不会返回的,因为原进程已经被完全替换掉了,除非发生错误,出错时, exec 返回-1。进程替换的原...原创 2018-04-20 16:07:49 · 645 阅读 · 0 评论 -
模拟实现shell-----输出重定向
更多linux知识:linux目录索引模拟实现shell思路:读取命令行的字符串,将一整句字符串以空格为分隔符分成若干个子串,再将每个子串的地址保存在一个数组argv中 使用fork函数创建一个子进程(fork函数),在子进程中将数组argv中存储的字符串指针传参给进程控制函数execvp,执行相应文件名的文件(进程); 父进程等待子进程退出,并且回收子进程,防止子进程和...原创 2018-04-20 16:16:29 · 1237 阅读 · 2 评论 -
进程间通信-----消息队列
更多linux知识:linux目录索引1. 什么是消息队列消息队列提供了一种从一个进程向另一个进程发送一个数据块的方法。 每个数据块都被认为含有一个类型,接收进程可以独立地接收含有不同类型的数据结构。个人理解:消息队列就是一个数据结构(也就是上面提到的数据块),好比是一个箱子,用来存消息,例如:进程一想要给进程二发送一个消息,就将消息装进箱子里面,进程二想要看消息是什么,就从这个...原创 2018-04-25 17:28:39 · 429 阅读 · 0 评论 -
linux:基础I/O
更多知识点:linux目录索引系统文件IO#include<fcntl.h>int open(const char* pathname,int flags);int open(const char* pathname,int flags,mode_t mode);pathname:要打开或者创建的目标文件falgs: O_RDONLY:只读 O_WRONLY:只写 O_原创 2018-04-21 22:27:56 · 204 阅读 · 2 评论 -
进程间通信------管道
更多linux知识:linux目录索引1.什么是管道 把一个进程连接到另一个进程的一个数据流称为一个“管道”,通常是用作把一个进程的输出通过管道连接到另一个进程的输入。管道本质上是内核的一块缓存例子: 在shell中输入命令:ls -l | grep string,我们知道ls命令(其实也是一个进程)会把当前目录中的文件都列出来,但是它不会直接输出,而是把本来要输出到屏...原创 2018-05-04 08:46:53 · 4818 阅读 · 2 评论