![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux
会飞滴熊猫
一个小渣渣的学习日常
展开
-
Linux试调器-gdb的安装和使用
Linux试调器-gdb的使用1.首先查询自己的虚拟机有没有gdb[weihang@itcast 1Day]$ which gdb如果现实文件夹所在位置则说明已经安装gdb如果没有安装使用[weihang@itcast 1Day]$ sudo yum install gdb -y2.背景程序发布的方式有两种,一种是debug一种是releaseLinux gcc/g++出来的二进制...原创 2019-05-03 15:01:29 · 787 阅读 · 0 评论 -
Linux简单的信号捕捉
文章目录1.使用signal函数2.使用sigaction函数1.使用signal函数signal函数原型sighandler_t signal(int signum, sighandler_t handler);typedef void (*sighandler_t)(int);#include <stdio.h>#include <sys/types.h>...原创 2019-05-29 09:24:50 · 265 阅读 · 0 评论 -
Linux中自主实现一个shell
文章目录1实现一个minishell2实现minishell输出重定向1实现一个minishell了解Linux中shell的底层实现原理#include <stdio.h>#include <sys/types.h>#include <sys/stat.h>#include <unistd.h>#include <string....原创 2019-06-08 09:51:28 · 268 阅读 · 0 评论 -
Linux动态库静态库的生成使用
Linux动态库静态库的生成使用文章目录Linux动态库静态库的生成使用1.准备工作2.静态库的生成使用2.动态库的生成使用1.准备工作①制作静态库的add.h文件#pragma once int add(int a,int b);①制作静态库的sub.h文件#pragma once int sub(int a,int b);②制作静态库的add.c文件#include ...原创 2019-06-08 14:11:39 · 168 阅读 · 0 评论 -
Linux中FILE和fd的区别
文章目录1.FILE文件流指针2.使用文件描述符1.FILE文件流指针关于FILE的读写操作给文件中写内容#include <stdio.h>#include <string.h>#include <unistd.h>#include <stdlib.h>#include <sys/wait.h>int main() ...原创 2019-06-08 14:18:16 · 827 阅读 · 0 评论 -
Linux中线程的概念
文章目录1.线程的概念2.创建线程3线程相关函数4线程同步1.线程的概念2.创建线程创建线程-----pthread_create函数原型成功返回0,出错返回错误号int pthread_create(pthread_t thread //线程id等于无符号长整型const pthread_attr_t attr //线程属性 NULLvoid (start_routin...原创 2019-06-04 16:13:12 · 189 阅读 · 0 评论 -
Linux进程间通信的常用方式
文章目录1.pipe匿名管道实现进程间通信2.fifo有名管道进行进程间通信3.共享内存实现进程间的通信4.有关于ipcs -q/m/s和ipcrm -q/m/s的用法1.pipe匿名管道实现进程间通信关于进程间通信的相关概念,请点击这里pipe实现进程间通信#include <stdio.h>#include <unistd.h>#include <st...原创 2019-06-21 14:37:57 · 797 阅读 · 0 评论 -
Linux网络TCP通信时程序的运行状态
TCP如何建立链接TCP如何通信TCP如何关闭链接什么是滑动窗口什么是半关闭局域网内两台机器如何利用TCP/IP通信internet上两台主机如何进行通信如何在internet上识别唯一一个进程答:通过“IP地址+端口号”来区分不同的服务为什么说TCP是可靠的链接,UDP不可靠路由器和交换机的区别点到点,端到端...原创 2019-07-22 14:51:24 · 223 阅读 · 0 评论 -
TCP协议中的七个定时器
文章目录1.建立连接定时器2.超时重传定时器3.延迟应答定时器4.持续定时器5.保活定时器6.FIN_WAIT2定时器7.TIME_WAIT定时器1.建立连接定时器在发送SYN请求时定时器启动,如果在定时器期间没有收到服务器的回应(75秒),则自动关闭连接,连接立即终止2.超时重传定时器超时重传定时器,在TCP发送某个数据段时设定,如果在一定时间内,没有收到对端的回应,TCP将认为你这段数...原创 2019-08-09 08:40:38 · 549 阅读 · 0 评论 -
vfork使用return退出为什么会挂掉?
vfork使用return退出为什么会挂掉?源代码为什么调用return直接程序挂掉 首先说一下fork(和vfork()的区别:fork()是创建一个子进程,并把父进程的内存数据直接copy到子进程中vfork()是创建一个子进程,并和父进程的内存数据share一起使用这两个的差别在于,一个是copy,一个是shareman vfork查看vfork()是怎么工作的...原创 2019-08-14 08:50:52 · 238 阅读 · 0 评论 -
Linux信号的认识
文章目录一.信号的初步认识二.信号相关函数三.信号集一.信号的初步认识1.特点①简单②携带的信息量少③使用在某个特定场景中2.信号的状态①产生如Ctrl+c…kill…软条件:定时器…硬件:段错误/除0错误②未决状态–没有被处理③递达— 被处理的信号3.阻塞信号集,未决信号集①pcb②不能直接操作③阻塞信号集:要屏蔽的信号④未决信号集:没有被处理的信号的集合...原创 2019-05-28 17:42:35 · 136 阅读 · 0 评论 -
Linux系统编程读写锁和条件变量使用
文章目录1.读写锁概念2.条件变量的概念和使用1.读写锁概念1.读写锁的适用场景?互斥锁- - -读写串行读写锁- - -:读: 并行写:串行程序中的读操作大于写操作的时候2.代码展示创建三个写线程,创建五个读线程为了防止数据混乱(CPU调度问题)需要给共享资源上锁,保证数据的整齐使用读写锁#include <stdio.h>#include <uni...原创 2019-06-05 15:59:15 · 352 阅读 · 0 评论 -
Linux中的链接函数unlink
Linux中的链接函数unlinkunlink的作用1.删除一个文件的目录项并减少它的链接数,若成功则返回0,否则返回-1,错误原因存于errno。2.如果想通过调用这个函数来成功删除文件,你就必须拥有这个文件的所属目录的写和执行权限。unlink的使用1. 如果是符号链接,删除符号链接2. 如果是硬链接,硬链接数减1,当减为0时,释放数据块和inode3. 如果文件硬链接数为0,但...原创 2019-05-04 14:21:53 · 414 阅读 · 0 评论 -
Linux基本命令整理
Linux基本命令整理1.目录基本操作根目录的基本示意图根目录下各种目录的作用dev目录(device的缩写)设备目录,该目录下的所有文件称为设备文件Linux下一切皆文件(CPU,显卡,声卡,网卡,鼠标,键盘)etc目录包含了当前操作系统用户的所有配置的相关信息home目录当前操作系统所安装的用户的主目录家目录(宿主目录,主用户目录)lib目录操作系统使用的库文件已经相...原创 2019-05-08 13:45:42 · 108 阅读 · 0 评论 -
Linux程序和进程
Linux程序和进程1.什么是程序程序是二进制文件,占用磁盘空间2.什么是进程运行中的程序所有的数据都在内存中需要占用更多的系统资源(CPU,物理内存)3.pcb进程控制块实际上是一个结构体里面放了很多数据4.进程的五种状态5.父进程子进程(fork)子进程是父进程的一份拷贝,唯一的区别就是他们的进程ID是不同的fork函数int fork(void)函数有两个返回值...原创 2019-05-21 21:05:49 · 127 阅读 · 0 评论 -
Linux进程间通信
Linux进程间通信1.什么是IPCinterprocess communication进程间通信2.进程间通信的四种方式a.管道-------简单b.信号-------系统开销小c.共享映射区d.套接字3.管道(匿名)本质:内核的缓冲区—伪文件(不占用磁盘空间)特点:两部分读端 ---------- 写端------对应两个文件描述符数据写端流入,读端流出原理:队...原创 2019-05-22 18:10:34 · 188 阅读 · 0 评论 -
Centos7安装vim8.0 + YouCompleteMe(世上最全,步骤最全)
Centos7安装vim8.0 + YouCompleteMe(世上最全,步骤最全)本篇文章纯属转载,原作者写的特别的详细,在安装youcompleteme的路上一直碰壁,直到看见这个博主写的世上最全的安装步骤,我想把这个文章分享给大家搬运工点这里查看安装步骤,世上最全...转载 2019-05-22 18:14:27 · 1883 阅读 · 0 评论 -
Linux常用的工具
Linux常用的工具1.VIM最好用的代码补全插件,YouCompleteMe这个插件可以时间代码的补全安装步骤 点这里2.能与vim相提并论的编辑器(Emacs)在这个蔚蓝色的星球上,流传着两大神器的传说: 据说Emacs是神的编辑器,而Vim是编辑器之神。追求独步天下的高手和低手们争着一睹它们的风采, 可看到它们朴素单薄的界面后,不禁心下怀疑: 这就是神器吗?甚至有人生了轻视之心。...转载 2019-05-24 08:42:02 · 154 阅读 · 0 评论 -
Linux进程概念
Linux进程概念1.进程的几种调度算法先进先出算法:算法总是把处理机分配给最先进入就绪队列的进程,一个进程一旦分得处理机,便一直执行下去,直到该进程完成或阻塞时,才释放处理机。例如,有三个进程P1、P2和P3先后进入就绪队列,它们的执行期分别是21、6和3个单位时间,执行情况如下图:对于P1、P2、P3的周转时间为21、27、30,平均周转时间为26。可见,FIFO算法服务质量不佳...原创 2019-05-24 08:58:41 · 164 阅读 · 0 评论 -
从内核的角度看Linux(task_struct结构体)
从内核的角度看Linuxtask_struct结构体的具体意义struct task_struct有保存有关线程/进程中的一切信息,主要包括有线程/进程状态、与其他线程/进程关系、虚拟内存相关、日志相关、线程/进程限制等。该结构体定义在include/linux/sched.h文件中,感兴趣可以详细阅读全局pid和tgid保存在task_struct结构体中。pid_t一般为int型,即可...原创 2019-05-24 09:06:34 · 348 阅读 · 0 评论 -
Linux实现孤儿进程和僵尸进程
Linux实现孤儿进程和僵尸进程孤儿进程:子进程是通过父进程创建的,子进程再创建新的进程。子进程的结束和父进程的运行是一个异步过程,即父进程永远无法预测子进程 到底什么时候结束。当一个父进程由于正常完成工作而退出或由于其他情况被终止,它的一个或多个子进程却还在运行,那么那些子进程将成为孤儿进程。为避免孤儿进程退出时无法释放所占用的资源而僵死,进程号为1的init进程将会接受这些孤儿进程,这一过...原创 2019-05-24 09:32:25 · 566 阅读 · 0 评论 -
Cloudimage
基于HTTP协议的图片处理服务器 Cloudimage项目功能提供一个存储图片服务器,为图片提供一个唯一的url,用url可以将图片展示在其他网页上项目思路使用MySQL数据库保存图片的各种信息,并对MySQL提供的接口进行封装采用md5算法对下载的图片进行校验,保证图片的完整性采用RESTful风格对HTTP协议进行设计使用使用JSON数据交换格式组织请求信息与响应信息...原创 2019-09-02 09:44:52 · 557 阅读 · 0 评论