Linux_染尘
码龄9年
关注
提问 私信
  • 博客:80,487
    80,487
    总访问量
  • 31
    原创
  • 363,751
    排名
  • 30
    粉丝
  • 0
    铁粉

个人简介:宁静致远

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:广东省
  • 加入CSDN时间: 2016-04-06
博客简介:

染尘

查看详细资料
个人成就
  • 获得97次点赞
  • 内容获得12次评论
  • 获得134次收藏
创作历程
  • 32篇
    2016年
成就勋章
TA的专栏
  • C++
    14篇
  • C
    3篇
  • 算法
    2篇
  • Linux
    3篇
  • 计算机系统
    2篇
  • STL
    2篇
  • 数据结构
    1篇
  • 网络编程
    7篇
创作活动更多

HarmonyOS开发者社区有奖征文来啦!

用文字记录下您与HarmonyOS的故事。参与活动,还有机会赢奖,快来加入我们吧!

0人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

有了malloc/free为什么还要new/delete?

有没有这样的疑惑?既然malloc和new都可以正确的申请动态内存,为什么C++要“多次一举”添加了new? new和malloc有什么本质的不同? 首先malloc/free是C++/C语言的标准库 函数,而new/delete是C++的运算符,虽然两者作用相同,但是性质是不同的。对于C++面向对象的特性而言,非内部数据类型的对象,光用malloc/free无法满足动态对象的要求。 对象在
原创
发布博客 2016.09.28 ·
818 阅读 ·
3 点赞 ·
0 评论 ·
4 收藏

指针参数如何传递内存?

当我们需要调用一个申请内存的函数时,大概想的是将函数的参数定义为一个指针来传递内存吧,但是可以用指针去申请动态内存吗?如下函数GetMemory(str,200):void GetMemory(char *p, int num){ p = (char *)malloc(sizeof(char)*num); if(p == NULL) return;}void T
原创
发布博客 2016.09.28 ·
572 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

Linux基本命令(一)——安装与登录

安装与登录命令将介绍: login, shutdown, halt, reboot, install, mount, umount, chsh, exit, lastlogin 1.作用 login的作用是登录系统,使用权限是所有用户。 2.格式 login[name][-p][-h主机名称] 3.主要参数 -p : 通知login保持现在的环境参数。 -h
原创
发布博客 2016.07.18 ·
706 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

C语言学习笔记(二)

1. 关于数组 下标和数组一起使用,用于标识该集合中某个特定的值; 数组名的值是一个指针常量,也就是数组第一个元素的地址;2. 数组与指针 数组与指针具有一些完全不同的特征。数组具有确定数量的元素,而指针只是一个标量值。只有当数组名在表达式中使用时,编译器才会为他产生一个指针常量。 当数组名作为sizeof操作符或单目操作符&操作数时,指针与数组不同,sizeof返回整个数组
原创
发布博客 2016.07.18 ·
428 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

C++ 类的6个缺省函数

在C++中默认产生6个类成员函数,即缺省函数,它们分别是:缺省构造函数缺省拷贝构造函数缺省析构函数缺省赋值运算符缺省取址运算符缺省取地址运算符const很多人以为只有前4个缺省函数,事实上有6个。代码验证如下:#include <iostream>using namespace std;class A{public: A() { cout<<"构造
原创
发布博客 2016.06.10 ·
3392 阅读 ·
5 点赞 ·
1 评论 ·
5 收藏

TCP : 3次握手与4次挥手

TCP协议在运输层工作,当客户端想要连接服务器,TCP协议要求 客户端和服务器共需要3次数据传输,才能确保客户端和服务器已经连通,我们把这个过程称为——3次握手。为什么是3次握手呢?我先来举一个现实中的例子。我给你打电话时,当拨号过去时,相当于我发送了第一次握手,表示我想和你通话。当你提起电话,“喂?”,这是你发送的第二次握手,发送消息给我,表示愿意与我通话,并且你信号正常。我这边再次“喂”,这是我
原创
发布博客 2016.06.07 ·
520 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

IO多路复用(select poll epoll)

IO多路复用是高性能网络编程一个重要的手段之一。一,IO多路复用的概念 以前我们用多线程来处理并发的请求,现在可以只用单线程来实现。单线程,通过记录跟踪每个每个I/O流(sock)的状态,来达到同时管理多个I/O流的目的,提高了服务器的吞吐能力。 如图所示,IO多路复用,就如同中间的开关,哪个sock就绪就连上开关,达到了单开关处理了多个I/O流的目的。这就是单线程却能处理多个Sock传
原创
发布博客 2016.06.05 ·
4196 阅读 ·
3 点赞 ·
0 评论 ·
4 收藏

高性能网络服务(多进程,多线程,线程池)

Linux的一个应用优势是可用于设计各种高性能网络服务程序,高性能得一个特点就是实现并发访问处理,及服务程序能够同时为多个在线用户提供服务,高性能服务程序得应用非常广泛,在当前流行的Web服务器,各种游戏服务器中都能看到它的身影,本次重点讲解多进程网络服务程序,多线程网络服务程序,以及线程池网络服务程序的实现原理。高性能网络服务程序简介 高性能网络服务程序在当前的LINUX环境下应用非常广泛,
原创
发布博客 2016.06.02 ·
1405 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

套接字—Socket

网络编程就不得不提大名鼎鼎的套接字—Socket一,什么是Socket 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个Socket。Socket的英文原意是“插座”,通常称之为套接字,来描述IP地址和端口,是一个通信链的句柄,用来实现不同虚拟机或者计算机之间的通信。 在Internet上的主机一般运行了多个服务软件,同时提供几种服务。每种服务都打开一个S
原创
发布博客 2016.06.02 ·
7688 阅读 ·
6 点赞 ·
0 评论 ·
23 收藏

网络编程—线程

之前的博客介绍了管道通信,进程间的通信,今天来介绍线程。 介绍线程前先要搞清楚线程与进程的区别。进程可以理解为正在运行的程序,进程管理和调度资源,而线程就是受进程调度的最小单位,也就是说进程给一个或多个线程资源并调度线程的运行。要运用线程,要包含头文件 pthread.h 。线程的属性标识符:pthread_attr_t。 线程的属性结构如下:typedef struct {
原创
发布博客 2016.05.25 ·
455 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏

快速掌握Makefile

要想成为一个”资深”程序员,gcc, gdb, make这三个命令是必须要熟练掌握的。今天介绍Makefile即make操作。一,什么是Makefile make 操作必须先编写Makefile文件。什么是Makefile? 可以将Makefile理解为脚本。这种脚本就是在多文件编译时的一个“自动化编译程序”。在大型工程中,常常成百上千的源文件需要编译链接,我们一个个编译太耗时间,而且当其中一
原创
发布博客 2016.05.21 ·
377 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

UNIX网络编程之管道与FIFO

管道是最初的Unix IPC形式,它们的最大局限是没有名字,所以,管道只能用于有亲缘关系的进程之间使用。之后,慢慢随着FIFO的加入,这点才有所改观。FIFO也成为有名管道。管道和FIFO的共同点就是它们都是通过read和write函数进行访问的。管道: 管道是由pipe函数创建,提供一个单路数据流。也就是说,所有的管道都是半双工。 管道创建方法: #include <unistd.h> i
转载
发布博客 2016.05.17 ·
550 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

IPC—进程间的通信(信号量,共享内存,消息队列)

IPC是进程间的通信(interprocess communication)的简称。传统上该术语描述的是运行在某个操作系统上的不同的进程间各种消息传递(message passing)。 IPC分为两代,初代System V IPC比较全面,现在用的Posix IPC更加易懂。不管是哪代IPC,重点都是这3点: 1. 信号量 2. 共享内存 3. 消息队列 Linux下命令
原创
发布博客 2016.05.16 ·
3098 阅读 ·
4 点赞 ·
0 评论 ·
10 收藏

进程—僵尸进程与孤儿进程

在探讨这个问题之前,我们先来弄清什么是进程。 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。 进程是一个具有独立功能的程序关于某个数据集合的一
原创
发布博客 2016.05.13 ·
630 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

智能指针之 shared_ptr

shared_ptr是一个最像指针的“智能指针”,是boost.smart_ptr库中最有价值、最重要的组成部分,也是最有用的,Boost库的许多组件–甚至还包括其他一些领域的智能指针都使用了shared_ptr。抱歉,我实在想不出什么更恰当的词汇来形容它在软件开发中的重要性。再强调一遍,shared_ptr非常有价值、非常重要、非常有用。——《Boost程序库完全开发指南》shared_ptr与s
原创
发布博客 2016.05.12 ·
11277 阅读 ·
1 点赞 ·
1 评论 ·
2 收藏

智能指针之 scoped_ptr

scoped_ptr是一个类似于auto_ptr的智能指针,它包装了new操作符在堆上分配的动态对象,能够保证动态创建的对象在任何时候都可以被正确的删除。但是scoped_ptr的所有权更加严格,不能转让,一旦scoped_pstr获取了对象的管理权,你就无法再从它那里取回来。正如scoped_ptr(局部指针)名字的含义:这个智能指针只能在作用域里使用,不希望被转让。代码实现如下:template
原创
发布博客 2016.05.12 ·
4908 阅读 ·
2 点赞 ·
3 评论 ·
9 收藏

智能指针之 auto_ptr (pc版与gcc版)

内存管理一直是令程序员头疼的工作,C++继承了C那高效而又灵活的指针,使用起来稍微的不小心就会导致内存泄漏(memory leak),野指针(wild pointer),访问越界(access denied)等问题。曾几何时,C++程序员无比羡慕JAVE,C#等语言的垃圾回收机制。但C++后来有了更高效的内存管理方法,智能指针的出现,使得C++在内存管理方面做得甚至比JAVE,C#更好。智能指针(s
原创
发布博客 2016.05.11 ·
962 阅读 ·
2 点赞 ·
0 评论 ·
2 收藏

List (单链表17个函数讲解)

链表时一种常用的数据结构,是通过“链”来建立起数据元素之间的逻辑关系,这种用链接方式储存的线性表简称链表(Link List)。一,链表与顺序表的对比 在接触链表之前大家想必已经了解过了顺序表的储存结构方式,顺序表与链表的不同之处如下: 1.顺序表是物理位置上相邻来表示数据元素之间的逻辑关系;但链表不是,物理地址不相连,通过指针来链接。 2.顺序表储存密度高,且能够随机的存取数据(
原创
发布博客 2016.05.10 ·
5221 阅读 ·
3 点赞 ·
0 评论 ·
19 收藏

字符串匹配(BF,BM,Sunday,KMP算法解析)

字符串匹配一直是计算机领域热门的研究问题之一,多种算法层出不穷。字符串匹配算法有着很强的实用价值,应用于信息搜索,拼写检查,生物信息学等多个领域。 今天介绍几种比较有名的算法: 1. BF 2. BM 3. Sunday 4. KMP—,BF算法 BF(Brute Force)算法又称为暴力匹配算法,是普通模式匹配算法。其算法思想很简单,从主串S的第pos个字符开
原创
发布博客 2016.05.06 ·
10162 阅读 ·
12 点赞 ·
5 评论 ·
43 收藏

C语言学习笔记

以前学习《C和指针》做的一些笔记,主要是一些不太注意的小知识点。 1.C 语言文件的编译的4个阶段: 源代码(.c / .cpp文件) -> (1.) 预编译阶段(操作符 gcc -E)。 预处理器在源代码上执行一些文本操作。例如,用实际值代替由#define指令定义的符号以及读入由#include指令包含的文件内容。 -> (2.)编译阶段(操作符 gcc -S)。 源代码经过
原创
发布博客 2016.05.02 ·
361 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏
加载更多