- 博客(23)
- 资源 (51)
- 问答 (5)
- 收藏
- 关注
原创 C/C++面试题(2)——查找链表中倒数第k个数
思路是:用两个指针,第一个指针先向前走k-1 步,然后两个指针一起走,当第一个指针走到尾节点的时候,第二个指针指向的就是倒数第k个节点。面试过程中最容易出现的不足:忘记判断指针为空以及数据越界的问题。所以得出结论,在之后的编程中首先应当完成的任务是解决非正常情况的判断,当完成一切非正确情况的处理之后,再完成正常功能的实现。这样代码的鲁棒性将会有一个很好的保证。#in
2016-08-31 17:15:01 648
原创 C++学习笔记-友元理论详解
友元、友元类、友元函数知识点总结 1、什么是友元? 由于有了类这样的机制,实现了数据的隐藏和封装,也就是说累的一般成员被定义为私有成员,成员函数一般被定义为公有的,类内部的成员函数可以访问类中的私有成员,这样就实现了数据的隐藏。但是这样出现了一个问题,有时候需要定义一个类外部的函数,但是这个函数又需要经常的访问类中的数据成员,这时候将这些函数定义为该函数的友元函数,就能够实现非
2016-08-30 19:24:31 646
原创 C/C++面试题(1)——字符串转换成整数
最近正在准备面试想着平时学过的写过的经典的代码整理一下,为将要到来的秋招面试做好准备。这是一个很简单的题目,主要考察编程者对于空指针,边界条件的判断,而要在面试的现场细心的注意到这写应该是很不容易的;所以平是应该加强锻炼;本体主要是将用户输入的数字字符串转换成对应的正整数; #include #include #include using namespace
2016-08-30 00:03:56 3444
转载 C++中引用(&)的用法详解
对于习惯使用C进行开发的朋友们,在看到c++中出现的&符号,可能会犯迷糊,因为在C语言中这个符号表示了取地址符,但是在C++中它却有着不同的用途,掌握C++的&符号,是提高代码执行效率和增强代码质量的一个很好的办法。在 c++学习提高篇(3)---隐式指针的文章中我详细介绍了在隐式指针&的用法,其实这两个概念是统一的。引用是C++引入的新语言特性,是C++常用的一个重要内容之一,正确、
2016-08-29 20:14:53 600
转载 LinuxIO模式以及select、poll、epoll详解
注:本文是对众多博客的学习和总结,可能存在理解错误。请带着怀疑的眼光,同时如果有错误希望能指出。同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?不同的人在不同的上下文下给出的答案是不同的。所以先限定一下本文的上下文。本文讨论的背景是Linux环境下的network IO。一 概念说明在进行解释之前,首先要说明几个概念:- 用户空间和内核空间
2016-08-27 10:36:54 466
转载 全面分析多路I/O转换(select 、poll /epoll)
select() 系统调用提供一个机制来实现同步多元I/O:#include sys/time.h>#include sys/types.h>#include unistd.h>int select (int n,fd_set *readfds,fd_set *writefds,fd_set *exceptfds,struct timev
2016-08-26 16:46:51 551
转载 TCP漏洞 半连接
本文介绍SYN攻击的基本原理、工具及检测方法,并全面探讨SYN攻击防范技术……据统计,在所 TCP握手协议 SYN攻击原理 SYN攻击工具 检测SYN攻击 SYN攻击防范技术 有黑客攻击事件中,SYN攻击是最常见又最容易被利用的一种攻击手法。相信很多人还记得2000年YAHOO网站遭受的攻击事例,当时黑客利用的就是简单而有效的SYN攻击,有些网络蠕虫病毒配合SYN攻击造成更大的破坏。本文介绍S
2016-08-20 16:21:54 2868
转载 TCP半连接的安全与防范
TCP 半连接的攻击的原理及防范 说起安全,不得不说一下当前最为流行的一种 D.o.S 的攻击方式,从目前看来,这种攻击仍然是危害性相当大,并且没有办法彻底防范的一种攻击方式。而且,凡是基于 TCP 的高层应用,都有可能受到这种致命的。 在“可靠的”传输层,在这里打上引号,是因为传输层并不是真正的可靠的,而只是相对的。为什么这么说呢,因为在 2 端的通
2016-08-20 16:15:10 3612
转载 TCP状态转换图
注:主动、被动 与 服务器、客户端没有明确的对应关系。这个图N多人都知道,它排除和定位网络或系统故障时大有帮助,但是怎样牢牢地将这张图刻在脑中呢?那么你就一定要对这张图的每一个状态,及转换的过程有深刻 的认识,不能只停留在一知半解之中。下面对这张图的11种状态详细解析一下,以便加强记忆!不过在这之前,先回顾一下TCP建立连接的三次握手过程,以及 关闭连接的四次握手过程。1、建立连接
2016-08-20 15:16:47 616
原创 linux环境下基于UDP的 客户端服务器模型
客户端//UDP 客户端#include #include #include #include #include #include #include #include #include #define MAXLINE 4096#define SERVER_PORT 8000 /* 这里的多有函数没有作出错判断 */int main(int argc, char
2016-08-19 22:33:30 2176
原创 linux环境下搭建一个基于tcp的客户端和服务器
基于TCP实现的C/S模式客户端和服务器。代码简单,也是我自己曾经学习的笔记,初学者可以交流学习。
2016-08-19 22:02:50 4795
转载 线程分离状态的理解
在任何一个时间点上,线程是可结合的(joinable),或者是分离的(detached)。一个可结合的线程能够被其他线程收回其资源和杀死;在被其他线程回收之前,它的存储器资源(如栈)是不释放的。相反,一个分离的线程是不能被其他线程回收或杀死的,它的存储器资源在它终止时由系统自动释放。 线程的分离状态决定一个线程以什么样的方式来终止自己。在默认情况下线程是非分离状态的,这种情况
2016-08-19 17:14:46 6187
转载 linux 信号机制分析
【摘要】本文分析了Linux内核对于信号的实现机制和应用层的相关处理。首先介绍了软中断信号的本质及信号的两种不同分类方法尤其是不可靠信号的原理。接着分析了内核对于信号的处理流程包括信号的触发/注册/执行及注销等。最后介绍了应用层的相关处理,主要包括信号处理函数的安装、信号的发送、屏蔽阻塞等,最后给了几个简单的应用实例。【关键字】软中断信号,signal,sigaction,kill,sig
2016-08-14 17:39:33 784
转载 GDB调试程序
用GDB调试程序GDB概述————GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。所谓“寸有所长,尺有所短”就是这个道理。一般来说,GDB主要帮忙你完成下面四个方面的功能:
2016-08-11 17:03:35 256
原创 linux系统编程——管道pipe
管道pipe内核中的缓冲区,多数使用队列(数据结构)来实现的。而队列多采用环形队列,一般采用阻塞机制,还有另一种机制是覆盖机制(当队列满的时候,后入队的覆盖之前的数据)。 下边例1 完成的功能就是 父进程向管道中写数据,子进程读父进程写的数据。——例1:/************************************************************
2016-08-10 23:14:16 2581
转载 linux内存映射mmap原理分析
一直都对内存映射文件这个概念很模糊,不知道它和虚拟内存有什么区别,而且映射这个词也很让人迷茫,今天终于搞清楚了。。。下面,我先解释一下我对映射这个词的理解,再区分一下几个容易混淆的概念,之后,什么是内存映射就很明朗了。 原理首先,“映射”这个词,就和数学课上说的“一一映射”是一个意思,就是建立一种一一对应关系,在这里主要是只 硬盘上文件 的位置与进程 逻辑地址空间 中一块大
2016-08-10 16:51:43 418
原创 linux16.04 中创建 有名管道 fifo
创建一个有名管道,解决无血缘关系的进程之间的通信;创建管道的函数#include #include int mkfifo(const char *pathname, mode_t mode);首先创建一个有名管道myfifo 命令是:mkfifo myfifo也可以直接使用上边的函数直接在代码中实现管道。然后分别创建两个“.c”文件,fifo_w.c
2016-08-09 16:36:31 698
原创 linux【进程学习】笔记——PCB、进程环境、进程原语、虚拟地址……
本文主要讲述了在学习linux进系统编程过程中有关于“进程”的章节,主要总结了有关PCB、进程环境、进程原语、虚拟地址的理论介绍,以及一些有关的系统函数的用法。
2016-08-08 16:06:26 1209
转载 如何查看linux命令源代码和函数源代码
用linux一段时间了,有时候想看看ls、cat、more等命令的源代码,在下载的内核源码中用cscope没能找到,在网上搜索了一下,将方 法总结如下:以搜索ls命令源码为例,先搜索命令所在包,命令如下:[Java] view plain copylpj@lpj-linux:~$ which ls /bin/ls 用命令搜索该
2016-08-06 17:10:53 4277
原创 linux系统编程,常见系统函数[open/read/write/lseek/close]
linux系统编程、系统函数 大多数U N I X文件I / O只需用到5个函数:o p e n、r e a d、w r i t e、lseek 以及c l o s e。系统函数介绍函数open()调用o p e n函数可以打开或创建一个文件。=============================================================================...
2016-08-04 21:50:18 3549
原创 vim 学习
Vim 学习新开标签 ctrl + shift + t 切换标签 alt + 1,2,3…… 新开终端ctrl + shift + n插入命令: I:插入行首 i:插入到光标前 A:插入行末尾 a:插入光标后一个字符 O:向上新开一行,插入行首 o: 向下新开一行,插入行首M: 光标移动到中间行 L : 光标移动到屏幕最后一行行首 G:
2016-08-04 21:41:00 251
原创 linux软件安装方式
linux安装方式:apt-get 安装。需要网络更新源服务器列表Sudo vim /etc/apt/sources.list知识更新软件新的列表,没有的软件出现他的列表。更新软件列表并不会下载该软件。 更新完服务器列表之后需要下载新软件的源Sudo apt-get update 更新源 Sudo apt-get install package 安装包S
2016-08-04 21:14:04 409
RPM包管理-yum在线管理-yum命令CentOS中的IP 配置,网络yum 源讲解
2015-10-09
rpm包管理—安装升级与卸载光盘yum源的搭建过程
2015-10-08
ffmpeginstaller.9.0.tar.gz
2019-09-05
NMS通用算法_论文《Efficient Non-Maximum Suppression》(中文)
2018-04-09
windows安装jupyter
2018-04-08
boa服务器移植教程
2018-04-08
【论文】多任务级联卷积网络的面部检测与对齐(中文版)
2018-04-08
Shell编程-字符截取命令-cut printf awk sed 命令
2015-10-26
shell基础 之 数值运算与运算符 环境变量配置文件 shell登录信息
2015-10-23
gcc内嵌汇编, 如何将unsigned char 类型数据转为float 类型?
2018-10-16
使用caffe2 ,可以同时载入多个模型吗?
2018-05-22
C代码调用python模块时,模块导入问题
2018-04-20
TA创建的收藏夹 TA关注的收藏夹
TA关注的人