Linux
_Saoke
曾以为走不出去的日子
现在都回不去了
展开
-
ubuntu git安装与使用+更新被拒绝,因为远程仓库包含您本地尚不存在的提交。这通常是因为另外 提示:一个仓库已向该引用进行了推送+更新被拒绝,因为您当前分支的最新提交落后于其对应的远程分支
文章链接: http://blog.csdn.net/yhl_leo/article/details/50760140https://blog.csdn.net/u013551462/article/details/50867710https://blog.csdn.net/qq_30581017/article/details/790046651 安装安装方式...转载 2019-02-22 20:19:52 · 5200 阅读 · 0 评论 -
TCP模拟实现服务端与客户端的简单交互---c++
TCP网络通信流程:1.创建套接字(socket)2.为套接字绑定地址信息(bind)3.服务端开始监听(listen)4.客户端请求连接(connect)5.服务端获取连接请求(accept)6.发送数据(send)7.接收数据(recv)8.关闭套接字(close)头文件:#include <iostream> ...原创 2019-06-01 10:06:21 · 1129 阅读 · 0 评论 -
C++异常
C语言异常处理C语言中最常用的处理简单错误的方式就是通过 assert , 错误码 以及 perror等库函数来进行错误的获取和处理. 但是这存在一些缺陷, 比如说 assert 直接终止程序太粗暴, 错误码在返回值为整型家族的函数中会难以判断.setjmp.h在C语言的函数库中存在 setjmp 和 longjmp 的组合, 来实现简单的异常捕获和处理. 这在较大型的C语言项目中可能会用到...原创 2019-07-06 19:59:49 · 245 阅读 · 0 评论 -
C++智能指针
智能指针智能指针主要是为了解决内存泄漏的问题, 这与异常安全是密不可分的, 如果在malloc和free之间或new和delete之间存在抛出异常的话, 还是会存在内存泄漏的问题.智能指针的原理RAII(Resource Acquisition Is Initialization): 资源获取即初始化这是一种利用对象声明周期来控制程序资源的技术.在对象构造时获取资源, 在这个对象的整个声...原创 2019-07-06 20:00:12 · 254 阅读 · 0 评论 -
C++的类型转换
C语言中的类型转换#include <stdio.h>#include <Windows.h>int main() { int i = 1; // 隐式类型转换 double d = i; printf("%d\t%.2f\n", i, d); int* p = &i; // 强制类型转换 int address = (int)p; prin...原创 2019-07-29 20:44:07 · 260 阅读 · 0 评论 -
关联式容器--树形结构(map&set)
关联式容器什么是关联式容器:关联式容器也是用来存储数据的,与序列式容器(vector, list, deque…)不同的是,其里面存储的是<key, value>结构的键值对,在 数据检索时比序列式容器效率更高键值对:用来表示具有一一对应关系的一种结构,该结构中一般只包含两个成员变量key和value,key代表键值, value表示与key对应的信息, 这类似于字典中的一一对...原创 2019-07-29 20:37:53 · 840 阅读 · 0 评论 -
C++继承
继承什么是继承:继承可以认为是类层面上的重载. 在保证原有类型的基础上进行扩展, 实现类的代码复用. 继承展现了面向对象程序设计的层次结构.基类和派生类对象之间的赋值:派生类可以赋值给基类的对象/指针/引用(切片), 但是基类不能赋值给派生类.隐藏(重定义):基类和派生类有独立的作用域如果子类中有和父类同名的函数, 子类成员将屏蔽父类的同名成员的直接访问形成对父类同名成员的隐藏(重定...原创 2019-07-06 19:58:58 · 175 阅读 · 0 评论 -
常见的网络配置[转载]
https://segmentfault.com/a/1190000011954814转载 2019-07-31 14:10:56 · 353 阅读 · 0 评论 -
yum:The requested URL returned error: 404
在使用yum的时候总是提示The requested URL returned error: 404这个错误://使用的是163的源 http://mirrors.163.com/.help/CentOS6-Base-163.repo[base]name=CentOS-$releasever - Base - 163.combaseurl=http://mirrors.163.com...转载 2019-08-06 02:38:15 · 2036 阅读 · 0 评论 -
网络基础(一)
网络发展:独立模式->网络互联->局域网LAN->广域网LAN独立模式:计算机之间相互独立, 各司其职网络互连:多台计算机连接到一台服务器上, 完成数据共享, 业务自由切换.局域网LAN:通过交换机和路由器连接较多计算机广域网LAN:较大的局域网LAN, 将更多的和更远的计算机连接起来.网络协议:网络协议:是网络通讯过程中的一种数据格式的约定.通信协议标准:是网络...原创 2019-05-18 18:32:30 · 410 阅读 · 0 评论 -
UDP模拟实现服务器与客户机的简单交互---c++
五步1.创建套接字 — socket2.为套接字绑定地址信息 — bind3.接收数据 — recvfrom4.发送数据 — sendto5.关闭套接字 — close头文件:#pragma once ...原创 2019-05-22 10:50:15 · 738 阅读 · 0 评论 -
我对进程的理解
最近在学习与进程相关的知识, 最开始对进程的理解还是不够透彻和连贯的, 为此我查询了部分的相关资料, 对进程有了更进一步的了解进程概念1.什么是进程2.进程结构3.进程特征4.进程状态5.引入进程的意义什么是进程狭义定义: 进程就是一段程序的执行过程(或者我们可以简单的理解为进行中的程序)广义定义: 进程是一个具有一定独立性功能的程序关于某个数据集合的一次运行活动. 它是操作系...原创 2019-04-08 20:24:15 · 1287 阅读 · 0 评论 -
Linux进程地址空间(包括内核源码的简述)
什么是进程地址空间简单来讲, 进程的地址空间是进程可用于寻址内存的地址集合, 包括进程的物理地址空间和虚拟地址空间.操作系统有虚拟内存和物理内存的概念. 但是在很久之前, 操作系统只有物理内存的概念, 程序寻址都是用的物理地址, 寻址空间的大小取决于 cpu 地址线条数, 在 32 位的操作系统上, 寻址的范围是固定的(最多 4G). 也就是说, 每次运行一个程序, 都会给进程分配 4G 的...原创 2019-04-22 09:33:55 · 498 阅读 · 0 评论 -
进程等待(原理+接口调用)及进程状态
什么是进程等待简单来说, 进程等待是进程的一种状态, 是父进程等待子进程退出时的一个过程为什么要进程等待简单来讲, 因为要避免产生僵尸进程.进程在退出的时候, 会关闭所有的文件描述符, 释放在用户空间中分配的内存, 但是 PCB 仍会暂时保留, 里面还存放着进程的退出状态以及统计信息等.当一个进程创建一个子进程时, 父进程往往需要读取子进程的运行结果, 如果子进程先于父进程退出, 父进程...原创 2019-04-18 21:37:16 · 2689 阅读 · 0 评论 -
Ptrace 详解
原文链接: https://www.cnblogs.com/tangr206/articles/3094358.html引子:1.在Linux系统中,进程状态除了我们所熟知的TASK_RUNNING,TASK_INTERRUPTIBLE,TASK_STOPPED等,还有一个TASK_TRACED。这表明这个进程处于什么状态?2.strace可以方便的帮助我们记录进程所执行的系统调用,它是如何跟踪...转载 2019-04-18 18:32:16 · 16894 阅读 · 0 评论 -
进程替换(简单的函数使用)
什么是进程替换进程替换就是用新进程来替换当前进程. 在 bash 中, 进程替换其实就是命令替换和管道的组合.替换原理:我们知道子进程存在的意义不仅仅是它能帮助父进程进行压力分摊, 最主要的功能其实是让子进程去完成其他的工作, 也就是进程替换. 子进程通过调用 exec 系列函数时, 当前进程的虚拟地址空间上的各个数据段被磁盘上指定的新程序给替换掉, 本质上并没有创建新的进程, 进程的 ID...原创 2019-04-19 10:19:17 · 881 阅读 · 0 评论 -
关于Ubuntu中Could not get lock /var/lib/dpkg/lock解决方案
**原文:**https://blog.csdn.net/u011596455/article/details/60322568在Ubuntu中,有时候运用sudo apt-get install 安装软件时,会出现一下的情况E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailabl...转载 2019-04-24 10:40:53 · 207 阅读 · 0 评论 -
基础IO---fread和fwrite的使用
什么是 fread 和 fwritesize_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);ptr: 一个指向内存块(大小至少为size * nmemb)的指针size: 读取元素的大小nmemb: 读取元素的个数stream: 字符流指针size_t fwrite(const void *ptr, size_...原创 2019-04-25 18:23:50 · 917 阅读 · 0 评论 -
Linux软件包管理(rpm, yum, 源码包)
软件包常见的三种安装包类型:三种安装包特点:源码包: 有开放的源代码, 手动编译安装, 速度慢脚本安装包: 相对于源码包而言, 不需要手动编译安装, 实现自动安装, 方便.二进制包: 没有开放的源代码, 但是没有编译过程, 安装速度快.RPMRPM(Red hat package management):对rpm包进行管理:安装rpm软件包:#rpm -ivh .rpm包全名...原创 2019-05-16 16:19:56 · 372 阅读 · 0 评论 -
c++类和对象基础完结篇
再谈构造函数之前对构造函数简单的定义就是实现成员变量的初始化功能, 起始这并不准确:在引入初始化列表之前, 我们只是对成员变量进行了声明和赋值而已, 并没有进行真正的初始化. 因为初始化只能进行一次, 而赋值可以进行多次.初始化列表:初始化列表做的事就是, 实现真正的成员变量的初始化:初始化列表存在的意义:初始化列表存在的意义就是有些地方必须要用初始化列表来解决.引用成员变量: 引用...原创 2019-05-26 23:15:06 · 204 阅读 · 0 评论 -
Linux下的输入缓冲区问题
Linux下清空缓冲区的方法 C标准规定fflush()函数是用来刷新输出(stdout)缓存的。对于输入(stdin),它是没有定义的。但是有些编译器也定义了fflush( stdin )的实现,比如微软的VC。其它编译器是否也定义了fflush( stdin )的实现应当查找它的手册。 GCC编译器没有定义它的实现,所以不能使用fflush(stdin)来刷新输入缓存。对于...转载 2019-08-09 01:44:40 · 893 阅读 · 0 评论