自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(61)
  • 收藏
  • 关注

转载 网络编程中4个重要的地址数据结构sockaddr_in sockaddr_in6 sockaddr sockaddr_storage

1. IPv4: struct  sockaddr_in (internet), 16个字节 1 struct sockaddr_in { 2 sa_family_t sin_family; /* AF_INET */ 3 in_port_t sin_port; /* Port number. */ 4 ...

2018-06-24 23:50:59 2840

转载 给初学者的深度学习简介

深度学习是计算机领域中目前非常火的话题,不仅在学术界有很多论文,在业界也有很多实际运用。本篇博客主要介绍了三种基本的深度学习的架构,并对深度学习的原理作了简单的描述。本篇文章翻译自Medium上一篇入门介绍。深度学习是计算机领域中目前非常火的话题,不仅在学术界有很多论文,在业界也有很多实际运用。本篇博客主要介绍了三种基本的深度学习的架构,并对深度学习的原理作了简单的描述。翻译自:原文地址简介机器学...

2018-06-24 20:26:20 331

转载 sockaddr和sockaddr_in详解

struct sockaddr和struct sockaddr_in这两个结构体用来处理网络通信的地址。一、sockaddrsockaddr在头文件#include <sys/socket.h>中定义,sockaddr的缺陷是:sa_data把目标地址和端口信息混在一起了,如下:struct sockaddr { sa_family_t s...

2018-06-24 17:30:57 261

原创 TCP

TIMEWAIT状态等于2*MSL 在我的系统中为30s一个MSL。telnettcpdumplsof -i:80netstat -al|grep tcp浅谈CLOSE_WAIT发表于2016-01-19 TCP 有很多连接状态,每一个都够聊十块钱儿的,比如我们以前讨论过 TIME_WAIT 和 FIN_WAIT1,最近时不时听人提起 CLOSE_WAIT,感觉有必要梳理一下。所谓 CLOSE_...

2018-06-23 16:08:12 560

转载 Unix系统中常用的信号含义

编号为1 ~ 31的信号为传统UNIX支持的信号,是不可靠信号(非实时的),编号为32 ~ 63的信号是后来扩充的,称做可靠信号(实时信号)。不可靠信号和可靠信号的区别在于前者不支持排队,可能会造成信号丢失,而后者不会。下面我们对编号小于SIGRTMIN的信号进行讨论。1~15号信号为常用信号1) SIGHUP本信号在用户终端连接(正常或非正常)结束时发出, 通常是在终端的控制进程结束时, 通知同...

2018-06-23 12:13:17 378

转载 八皇后

递归与回溯:   a.回溯算法的基本思想:从问题的某一种状态出发,搜索可以到达的所有状态。当某个状态到达后,可向前回退,并继续搜索其他可达状态。当所有状态都到达后,回溯算法结束!   b.对于回溯算法,在前面KMP匹配中就利用了这个思想,只不过当时KMP中定义了一个node数组(起到了一个地图的作用,记录了每种回溯情况的可能)。而这节中,是利用函数的活动对象保存回溯算法的状态数据,因此可以利用递归...

2018-06-21 19:51:49 456

转载 计算机图形学知识点总结

第一章 计算机图形学概论1. 比较计算机图形学与图象处理技术相同点和不同点。Computer Graphics(计算机图形学)和Computer Vision(计算机图像识别)是同一过程的两个方向。Computer Graphics将抽象的语义信息转化成图像,Computer Vision从图像中提取抽象的语义信息。Image Processing(图像处理)探索的是从一个图像或...

2018-06-21 16:06:34 1302

转载 Linux网络编程-自己动手写进程池

并发服务器的实现中,可以通过动态的创建子进程(或子线程)来实现。这样有几个缺点:1、动态创建进程(或线程)比较耗时间,将导致客户响应较慢2、动态创建的子进程或子线程通常只用来为一个客户服务,这导致系统中产生了很多进程或线程,使进程或线程之间的切换消耗很多CPU时间3、动态创建子进程是当前进程的完整映像,当前进程需要谨慎管理其分配的文件描述符,否则子进程可能复制这些资源,导致系统可用资源急剧下降,进...

2018-06-21 14:53:19 194

转载 tcp/ip协议详解及重点知识整理

一、TCP/IP参考模型  ISO制定的OSI参考模型的过于庞大、复杂招致了许多批评。与此对照,由技术人员自己开发的TCP/IP协议栈获得了更为广泛的应用。如图2-1所示,是TCP/IP参考模型和OSI参考模型的对比示意图。            图2-1  TCP/IP参考模型  2.1 TCP/IP参考模型的层次结构  TCP/IP协议栈是美国国防部高级研究计划局计算机网(AdvancedRe...

2018-06-20 20:39:33 463

转载 linux之信号Linux信号(signal) 机制分析

产生信号的条件主要有:A. 通过终端按键产生信号用户在终端按下某些键时,终端驱动程序会发送信号给前台进程,例如Ctrl-C产生SIGINT信 号,Ctrl-\产生SIGQUIT信号,Ctrl-Z产生SIGTSTP信号。SIGINT的默认处理动作是终止进程, SIGQUIT的默认处理动作是终止进程并且Core Dump,首先解释什么是Core Dump(核心转储)。当一个进程要异常终止时,可以选择把...

2018-06-20 12:51:38 10219

转载 Linux多进程和线程同步的几种方式

引用:http://community.csdn.net/Expert/TopicView3.asp?id=4374496linux下进程间通信的几种主要手段简介:   1. 管道(Pipe)及有名管道(named pipe):管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信;   2. 信号(Signal):信号...

2018-06-20 12:01:41 182

原创 linux 杂记

线程同步:1.互斥锁2.读写锁3.条件变量4.信号量5.自旋锁6.屏障(barrier)进程同步:1.互斥锁2.读写锁3.条件变量4.记录锁(record locking)5.信号量6.屏障(barrier)-pthread Adds support for multithreading with the pthreads library. This option sets flags for b...

2018-06-20 11:58:52 130

原创 1

如何设计好的API, 变量类型的选择, 排列顺序, 返回类型, 关键字我觉得自己除了消极肤浅之外, 还有民妄气质。在分析问题之前,没有完整的方法。e, r, o.学习的时候,快速打通主脉, 建立模型。...

2018-06-19 17:28:51 116

原创 斐波拉契数列

#include <stdio.h>#include <stdlib.h>int fib(int n) { if(n == 0 || n == 1) { return 1; } else { return fib(n - 1) + fib(n - 2); }}int fib_loop(int n) { if(n == 0 || n == 1) {...

2018-06-19 11:47:57 215

转载 memory pool

 /* The MIT License   Copyright (c) 2008-2009, by Attractive Chaos <[email protected]>   Permission is hereby granted, free of charge, to any person obtaining  a copy of this software a...

2018-06-18 12:45:40 305

转载 进程间通信(IPC)介绍

进程间通信(IPC,InterProcess Communication)是指在不同进程之间传播或交换信息。IPC的方式通常有管道(包括无名管道和命名管道)、消息队列、信号量、共享存储、Socket、Streams等。其中 Socket和Streams支持不同主机上的两个进程IPC。以Linux中的C语言编程为例。一、管道管道,通常指无名管道,是 UNIX 系统IPC最古老的形式。1、特点:它是半...

2018-06-18 02:51:26 143

转载 hash 介绍及 代码

https://blog.csdn.net/asdzheng/article/details/70226007文章转自:https://www.byvoid.com/blog/string-hash-compare常用的字符串Hash函数还有ELFHash,APHash等等,都是十分简单有效的方法。这些函数使用位运算使得每一个字符都对最后的函数值产生影响。另外还有以MD5和SHA1为代表的杂凑...

2018-06-18 01:39:49 737

转载 Linux IO模式及 select、poll、epoll详解

135注:本文是对众多博客的学习和总结,可能存在理解错误。请带着怀疑的眼光,同时如果有错误希望能指出。同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?不同的人在不同的上下文下给出的答案是不同的。所以先限定一下本文的上下文。本文讨论的背景是Linux环境下的network IO。一 概念说明在进行解释之前,首先要说明几个概念:- 用户空间和内核空间- 进程切换- 进程的阻塞- ...

2018-06-17 14:35:19 97

原创 shell排序 快速排序 堆排序 插入排序

#include <stdio.h>void shell(int a[], int size) { int dist = size/2; int temp = 0; for(dist; dist>0; dist/=2) { int i = 0; for(int i=dist; i<size; i+=dist) { for(int j=i-dist; ...

2018-06-17 11:36:59 478

转载 I/O 复用

作者:柴小喵链接:https://www.zhihu.com/question/28594409/answer/52835876来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。下面举一个例子,模拟一个tcp服务器处理30个客户socket。假设你是一个老师,让30个学生解答一道题目,然后检查学生做的是否正确,你有下面几个选择:1. 第一种选择:按顺序逐个检查,先检查A...

2018-06-17 03:08:02 124

转载 Linux系统调用列表

以下是Linux系统调用的一个列表,包含了大部分常用系统调用和由系统调用派生出的的函数。这可能是你在互联网上所能看到的唯一一篇中文注释的Linux系统调用列表,即使是简单的字母序英文列表,能做到这么完全也是很罕见的。按照惯例,这个列表以man pages第2节,即系统调用节为蓝本。按照笔者的理解,对其作了大致的分类,同时也作了一些小小的修改,删去了几个仅供内核使用,不允许用户调用的系统调用,对个别...

2018-06-17 02:49:39 783

转载 Linux C函数库大全

Linux C函数库大全(1)字符测试函数isalnum(测试字符是否为英文字母或数字)isalpha(测试字符是否为英文字母)isascii(测试字符是否为ASCII码字符)isblank(测试字符是否为空格字符)iscntrl(测试字符是否为ASCII码的控制字符)isdigit(测试字符是否为阿拉伯数字)isgraph(测试字符是否为可打印字符)islower(测试字符是否为小写英文字母)i...

2018-06-17 02:47:53 458

转载 【Linux学习】epoll详解

什么是epollepoll是什么?按照man手册的说法:是为处理大批量句柄而作了改进的poll。当然,这不是2.6内核才有的,它是在2.5.44内核中被引进的(epoll(4) is a new API introduced in Linux kernel 2.5.44),它几乎具备了之前所说的一切优点,被公认为Linux2.6下性能最好的多路I/O就绪通知方法。 epoll的相关系统调用epol...

2018-06-17 02:22:37 152

转载 高并发网络编程之epoll详解

在linux 没有实现epoll事件驱动机制之前,我们一般选择用select或者poll等IO多路复用的方法来实现并发服务程序。在大数据、高并发、集群等一些名词唱得火热之年代,select和poll的用武之地越来越有限,风头已经被epoll占尽。本文便来介绍epoll的实现机制,并附带讲解一下select和poll。通过对比其不同的实现机制,真正理解为何epoll能实现高并发。select()和p...

2018-06-17 00:21:44 103

转载 SQL 常用语法

阅读目录一、SQL分类二、基础语句三、sql技巧四、(MS SQL Server)SQL语句导入导出大全回到目录一、SQL分类DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE)DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT)DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK) 回到目录二、基础语句2.1、说明:创建数...

2018-06-16 19:00:47 309

原创 小顶堆

template<class T>  class MinHeap {  public:      MinHeap(int MinHeapSize = 10);      ~MinHeap() {delete [] heap;}      int Size() const {return CurrentSize;}      T Min() {if (CurrentSize == 0) ...

2018-06-16 18:02:00 842

转载 Linux常用命令大全

系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI) hdparm -i /dev/hda 罗列一个磁盘的架构特性 hdparm -tT /dev/sda 在磁盘上执行测试性读取操作 cat /proc/cpuinfo 显示CPU info...

2018-06-16 11:41:17 105

原创 UNIX( linux) 网络编程

bzero( *arg, sizeof(arg) )将整个数据结构智位0, memset(*arg, 0, sizeof(arg) ),意义一样,但记忆更麻烦。fputs是一个函数,具有的功能是向指定的文件写入一个字符串(不自动写入字符串结束标记符‘\0’)。成功写入一个字符串后,文件的位置指针会自动后移,函数返回值为非负整数;否则返回EOF(符号常量,其值为-1)。int fputs(const...

2018-06-15 21:08:06 458

转载 操作系统原理总结

一、基础知识点1. 操作系统的资源管理技术资源管理解决物理资源数量不足和合理分配资源这两个问题。  操作系统虚拟机为用户提供了一种简单、清晰、易用、高效的计算机模型。虚拟机的每种资源都是物力资源通过复用、虚拟和抽象而得到的产物。 虚拟机提供进程运行的逻辑计算环境。从概念上来说,一个进程运行在一台虚拟机上,可以认为一个进程就是一台虚拟机,一台虚拟机就是一个进程。复用:空分复用共享和时分复用共享。 a...

2018-06-15 20:25:46 284

转载 可能是最小的编译器

原github:https://github.com/starkwang/website.git/**  * TTTTTTTTTTTTTTTTTTTTTTTHHHHHHHHH HHHHHHHHHEEEEEEEEEEEEEEEEEEEEEE  * T:::::::::::::::::::::TH:::::::H H:::::::HE::::::::::::::::::::E  * T...

2018-06-15 18:16:31 835

原创 预处理命令

 宏定义                        文件包含                   条件编译#define #ifndef  else #endif #include #define EXPECT(c, ch) do { assert(*c->json == (ch)); c->json++; } while(0) #ifndef __SOMEFIL...

2018-06-15 14:30:44 112

转载 程序员最值得关注的10个C开源项目

  1. Webbench  Webbench 是一个在 linux 下使用的非常简单的网站压测工具。它使用 fork ()模拟多个客户端同时访问我们设定的 URL,测试网站在压力下工作的性能,最多可以模拟 3 万个并发连接去测试网站的负载能力。Webbench 使用C语言编写, 代码实在太简洁,源码加起来不到 600 行。  下载链接:http://home.tiscali.cz/~cz2105...

2018-06-15 13:00:17 340

原创 套接字

AF_INET 2AF_INET6 10stdin 0stdout 1stderr 2other,such as:sock 3

2018-06-15 10:59:44 303

转载 Tinyhttpd for Ubuntu 14.04 中文详细注释版

Tinyhttpd是十大开源必读项目之一,通过不到600行的代码,即可剖析一个超轻量级http Web Server的本质,实践计算机网络,Unix网络编程和http的相关知识。我把httpd.c在Ubuntu 14.04上重新实现了一遍,并添加了中文注释,希望对其有着更深入的了解。流程图如下:  建议源码阅读顺序: main -> startup -> accept_request ...

2018-06-15 01:16:40 123

原创 CGI C/C++ tinyhttpd

In computing, Common Gateway Interface (CGI) offers a standard protocol for web servers to execute programs that execute like console applications (also called command-line interface programs) running...

2018-06-14 16:01:26 521

转载 shell常用代码

Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。打开终端 创建一个以.sh为后缀的文件,例如test..sh。内容如下:#!/bin/bashecho "hello"chmod +x ./test.sh #使脚本具有执行权限./test.sh #执行脚本变量:变量类型:局部变量 如var_, 环境变量 如#!,...

2018-06-14 12:17:53 1407

原创 toward baidu programming

函数原型:int stat(const char *restrict pathname, struct stat *restrict buf);提供文件名字,获取文件对应属性。int fstat(int filedes, struct stat *buf);通过文件描述符获取文件对应的属性。int lstat(const char *restrict pathname, struct stat *...

2018-06-14 04:05:56 80

转载 [Data Structure & Algorithm] 七大查找算法

原文:https://www.cnblogs.com/maybe2030/p/4715035.html阅读目录1. 顺序查找2. 二分查找3. 插值查找4. 斐波那契查找5. 树表查找6. 分块查找7. 哈希查找  查找是在大量的信息中寻找一个特定的信息元素,在计算机应用中,查找是常用的基本运算,例如编译程序中符号表的查找。本文简单概括性的介绍了常见的七种查找算法,说是七种,其实二分查找、插值查找...

2018-06-14 01:49:06 79

原创 常用算法

排序:交换排序选择排序 插入排序堆排序桶排序。 不稳定的排序方法包括:快速排序,希尔排序, 堆排序, 选择排序查找:    1. 顺序查找    2. 二分查找    3. 插值查找    4. 斐波那契查找    5. 树表查找    6. 分块查找    7. 哈希查找最短路AORAOE最小生成树shell排序:#include<stdio.h>void InsertSort(i...

2018-06-14 01:46:42 77

转载 数据结构知识点总结

原来有考研究生的准备,看了几个月的基础课,其实没有什么意思,倒是觉得有点心结。1,数据结构三要素:  1,逻辑结构:线性和非线性  2,存储结构:顺序,链式,索引,散列  3,数据运算:算法  具体时间复杂度与问题的规模和初始条件相关,分最佳和最大2,线性表:无头结点:  头插法:s->data=ch;s->next=head;head=s;  尾插法:rear->next=s;...

2018-06-14 01:38:24 209

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除