编程
文章平均质量分 92
_宇宙浪子_
与其遥望远方,不如说走就走~
展开
-
Python3 urllib(网络数据获取 模块)
本文由 Luzhuo 编写,转发请保留该信息. 原文: http://blog.csdn.net/Rozol/article/details/69941511以下代码以Python3.6.1为例 Less is more!#coding=utf-8# urllibdemo.py urllib演示# urllib 用于处理Url相关的工具,用于从网络获取数据(网页源码/下载资源)from u...转载 2018-03-20 18:22:32 · 1159 阅读 · 0 评论 -
linux 中IO多路复用epoll函数的ET和LT工作模式详解
本文转自:http://blog.csdn.net/yusiguyuan/article/details/21462819epoll的优点:1.支持一个进程打开大数目的socket描述符(FD) select 最不能忍受的是一个进程所打开的FD是有一定限制的,由FD_SETSIZE设置,默认值是2048。对于那些需要支持的上万连接数目的IM服务器来说显然太少了。这时候你一转载 2014-09-30 16:07:27 · 588 阅读 · 0 评论 -
Linux/Unix IO多路复用之poll网络编程(含源码)
Linux/Unix IO多路复用之poll网络编程(含源码)前言本章节是用基本的Linux/Unix基本函数加上poll调用编写一个完整的服务器和客户端例子,可在Linux(ubuntu)和Unix(freebsd)上运行,客户端和服务端的功能如下:客户端从标准输入读入一行,发送到服务端服务端从网络读取一行,然后输出到客户端客户端收到服务端的响应,输出这一行到标准输出转载 2014-11-12 12:29:06 · 912 阅读 · 0 评论 -
linux的同步,异步,阻塞,非阻塞
linux中关于IO操作有同步,异步,阻塞,非阻塞几种模式,这几种模式可能有些同学会有点迷糊,把同步和阻塞混为一起,把异步和非阻塞混一起.其实这四种模式的关系是:阻塞和非阻塞都属于同步.1. 基础知识 我们都知道linux将所有的设备都看作文件,那么我们对linux的设备操作都可以看做是文件操作.我们打开一个文件的时候内核会返回给我们一个文件描述符,那么我们对文件的操转载 2014-09-30 15:47:44 · 447 阅读 · 0 评论 -
从头到尾彻底理解KMP(2014年8月22日版)
作者:July本文转自:http://blog.csdn.net/v_july_v/article/details/7041827时间:最初写于2011年12月,2014年7月21日晚10点 全部删除重写成此文,随后的半个多月不断反复改进。1. 引言 本KMP原文最初写于2年多前的2011年12月,因当时初次接触KMP,思路混乱导致写也写得混乱,如此,留言转载 2014-09-30 13:01:29 · 445 阅读 · 0 评论 -
Linux下getsockopt/setsockopt 函数说明
Linux下getsockopt/setsockopt 函数说明Linux下getsockopt/setsockopt 函数说明【 getsockopt/setsockopt系统调用】 功能描述: 获取或者设置与某个套接字关联的选 项。选项可能存在于多层协议中,它们总会出现在最上面的套接字层。当操作套接字选项时,选项位于的层和选项的名转载 2014-11-12 14:27:38 · 490 阅读 · 0 评论 -
Linux/Unix IO多路复用之select网络编程(含源码)
Linux/Unix IO多路复用之select网络编程(含源码)前言本章节是用基本的Linux/Unix基本函数加上select调用编写一个完整的服务器和客户端例子,可在Linux(ubuntu)和Unix(freebsd)上运行,客户端和服务端的功能如下:客户端从标准输入读入一行,发送到服务端服务端从网络读取一行,然后输出到客户端客户端收到服务端的响应,输出这一行到转载 2014-11-12 12:27:02 · 690 阅读 · 0 评论 -
Linux IO多路复用之epoll网络编程(含源码)
Linux IO多路复用之epoll网络编程(含源码)前言本章节是用基本的Linux基本函数加上epoll调用编写一个完整的服务器和客户端例子,可在Linux上运行,客户端和服务端的功能如下:客户端从标准输入读入一行,发送到服务端服务端从网络读取一行,然后输出到客户端客户端收到服务端的响应,输出这一行到标准输出 服务端代码如下转载 2014-11-12 12:29:52 · 646 阅读 · 0 评论 -
Linux 的多线程编程的高效开发经验
Linux 的多线程编程的高效开发经验杨 奕 (yangyish@cn.ibm.com), 软件工程师, IBM贺 皓 (haohe@cn.ibm.com), 软件工程师, IBM张 俊伟 (zhjunwei@cn.ibm.com), 软件工程师, IBM简介: 本文中我们针对 Linux 上多线程编程的主要特性总结出 5 条转载 2014-09-30 09:55:21 · 471 阅读 · 0 评论 -
守护进程的详解与创建
本文守护进程守护进程是一种后台运行并且独立于所有终端控制之外的进程。为什么需要有独立于终端之外的进程呢?首先,处于安全性的考虑我们不希望这些进程在执行中的信息在任何一个终端上显示。其次,我们也不希望这些进程被终端所产生的中断信号所打断。最后,虽然我们可以通过&将程序转为后台执行,我们有时也会需要程序能够自动将其转入后台执行。因此,我们需要守护进程。守护进程的启动要启转载 2014-09-30 10:33:08 · 477 阅读 · 0 评论 -
Linux 线程实现机制分析
浅谈POSIX线程的私有数据分类: linux2013-07-23 12:29 59人阅读 评论(0) 收藏 举报 当线程中的一个函数需要创建私有数据时,该私有数据在对函数的调用之间保持一致,数据能静态地分配在存储器中,当我们采用命名范围也许可以实现它使用在函数或是文件(静态),或是全局(EXTERN)。但是当涉及到线程时就不是那么简单了。在单线程程序中,我们转载 2014-09-30 09:57:38 · 435 阅读 · 0 评论 -
原始套接字(raw socket)
1.原始套接字(raw socket) 1.1 原始套接字工作原理与规则 原始套接字是一个特殊的套接字类型,它的创建方式跟TCP/UDP创建方法几乎是一摸一样,例如,通过CODE:[Copy to clipboard] int sockfd; sockfd = socktet(AF_INET, SOCK_转载 2014-10-27 16:52:03 · 7142 阅读 · 0 评论 -
linux使用读写锁pthread_rwlock_t
使用读写锁配置读写锁的属性之后,即可初始化读写锁。以下函数用于初始化或销毁读写锁、锁定或解除锁定读写锁或尝试锁定读写锁。下表列出了本节中讨论的用来处理读写锁的函数。表 4–9 处理读写锁的例程操作相关函数说明初始化读写锁pthread_rwlock_init 语法读取转载 2014-11-17 17:22:58 · 468 阅读 · 0 评论 -
gcc常用参数及环境变量
gcc最最常用的 几个选项做一个简要的说明 gcc [-c|-S|-E] [-std=standard] [-g] [-pg] [-Olevel] [-Wwarn...] [-pedantic] [-Idir...] [-Ldir...] [-Dmacro[=defn]...] [-Um转载 2014-10-15 14:30:53 · 694 阅读 · 0 评论 -
代码通用缩写表
转自:http://www.360doc.com/content/12/0909/20/10684534_235237596.shtml说明:1、本缩写表是《编码命名规范》的附录。2、本缩写表中列出的都是通用性缩写,不提供标准缩写,如:Win9x、COM 等。3、使用本缩写表里的缩写时,请对其进行必要的注释说明。4、除少数情况以外,大部分缩写与大小写无关。转载 2018-01-12 10:40:56 · 9512 阅读 · 0 评论 -
gcc编译参数-fPIC的一些问题
转自:http://blog.sina.com.cn/s/blog_54f82cc201011op1.htmlppc_85xx-gcc -shared -fPIC liberr.c -o liberr.so-fPIC 作用于编译阶段,告诉编译器产生与位置无关代码(Position-Independent Code), 则产生的代码中,没有绝对地址,全部使用相对地址,故而代码可转载 2015-12-01 10:57:47 · 674 阅读 · 0 评论 -
restrict关键字
restrict关键字的含义是:约束、限定、严格的;这个关键字是C99标准中新增加的;简单地说,restrict关键字只用于限定和约束指针;它告诉编译器,所有修改该指针所指向内存中内容的操作,全都必须基于(base on)该指针,即:不存在其它进行修改操作的途径;换句话说,所有修改该指针所指向内存中内容的操作都必须通过该指针来修改,而不能通过其它途径(其它变量或指针)来修改;这样做的好处是转载 2014-11-20 16:10:01 · 752 阅读 · 0 评论 -
共享内存映射之mmap()函数详解
本文共享内存映射之mmap()函数详解 共享内存可以说是最有用的进程间通信方式,也是最快的IPC形式,因为进程可以直接读写内存,而不需要任何数据的拷贝。对于像管道和消息队列等通信方式,则需要在内核和用户空间进行四次的数据拷贝,而共享内存则只拷贝两次数据: 一次从输入文件到共享内存区,另一次从共享内存区到输出文件。实际上,进程之间在共享内存时,并不总是读写少量数据后就解除转载 2014-10-05 20:29:11 · 12219 阅读 · 0 评论 -
linux后台开发具备能力集锦
Linux后台开发应该具备技能一、linux和os:1、命令:netstat tcpdump ipcs ipcrm 这四个命令的熟练掌握程度基本上能体现实际开发和调试程序的经验2、cpu 内存 硬盘 等等与系统性能调试相关的命令必须熟练掌握,设置修改权限 tcp网络状态查看 各进程状态 抓包相关等相关命令 必须熟练掌握3、awk sed需掌握4、共享内存的转载 2014-10-05 16:42:26 · 539 阅读 · 0 评论 -
UNIX网络编程--I/O复用:select函数和poll函数讲解(六)
一、概述 我们看到上面的TCP客户同时处理两个输入:标准输入和TCP套接字。我们遇到的问题就是在客户阻塞于(标准输入上的)fgets调用期间,服务器进程会被杀死。服务器TCP虽然正确地给客户TCP发送一个FIN,但是既然客户进程阻塞于从标准输入读入的过程,它将看不到这个ROF,知道从套接字读时为止(可能已经过了很长时间)。这样的进程需要一种预先告知内核的能力,使得内核一转载 2014-10-05 16:28:49 · 538 阅读 · 0 评论 -
epoll机制:epoll_create、epoll_ctl、epoll_wait、close
在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目越多,自然耗时越多。并且,linux/posix_types.h头文件有这样的声明:#define__FD_S转载 2014-10-05 15:56:53 · 633 阅读 · 0 评论 -
linux网络编程--三次握手/四次握手
我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览器浏览网页时,浏览器的进程怎么与web服务器通信的?当你用QQ聊天时,QQ进程怎么与服务器或你好友所在的QQ进程通信?这些都得靠socket?那什么是socket?socket的类型有哪些?还有socket的基本函数,这些都是本文想介绍的。本文的主要内容如下:1、网络中进程之间如何通信?2、Socket是什么?转载 2014-10-05 15:18:39 · 744 阅读 · 0 评论 -
posix多线程有感--线程高级编程(条件变量)
1.初始化条件变量pthread_cond_init[cpp] view plaincopyprint?int pthread_cond_init(pthread_cond_t *cv,const pthread_condattr_t *cattr); 返回值:函数成功返回0;任何其他返回值都表示错误初始化一个条件变量。当参数c转载 2014-11-03 17:17:30 · 474 阅读 · 0 评论 -
内存池的实现(一)
内存池的实现(一)引言C/C++下内存管理是让几乎每一个程序员头疼的问题,分配足够的内存、追踪内存的分配、在不需要的时候释放内存——这个任务相当复杂。而直接使用系统调用malloc/free、new/delete进行内存分配和释放,有以下弊端:调用malloc/new,系统需要根据“最先匹配”、“最优匹配”或其他算法在内存空闲块表中查找一块空闲内存,调用free/delet转载 2014-09-30 09:50:57 · 431 阅读 · 0 评论 -
Linux异步机制
本文转自:http://blog.csdn.net/u012491514/article/details/26276171还没有细细整理。什么是异步通知:很简单,一旦设备准备好,就主动通知应用程序,这种情况下应用程序就不需要查询设备状态, 特像硬件上常提的“中断的概念”。 比较准确的说法其实应该叫做“信号驱动的异步I/O”,信号是在软件层次上对中断机制的一种模拟。阻塞I/O意味转载 2014-10-08 17:01:39 · 542 阅读 · 0 评论 -
程序员编程艺术:第三章、寻找最小的k个数
程序员编程艺术:第三章、寻找最小的k个数作者:July。时间:二零一一年四月二十八日。致谢:litaoye, strugglever,yansha,luuillu,Sorehead,及狂想曲创作组。微博:http://weibo.com/julyweibo。出处:http://blog.csdn.net/v_JULY_v。--------------------------转载 2014-09-26 14:12:59 · 689 阅读 · 0 评论 -
程序员编程艺术:第二章、字符串是否包含问题
程序员编程艺术:第二章、字符串是否包含问题作者:July,yansha,caopengcs。时间:二零一一年四月二十三日。致谢:老梦,nossiac,Hession,Oliver,luuillu,啊菜,雨翔,及微软100题实现小组所有成员。题目描述:假设这有一个各种字母组成的字符串A,和另外一个字符串B,字符串里B的字母数相对少一些。什么方法能最快的查出转载 2014-09-26 14:11:15 · 649 阅读 · 0 评论 -
谷歌:1024!的末尾有多少个零
笔者自己算这道题目的时候,也是考虑到用 2*5=10来计算,但是却忽略了5^n问题,比如125是可以产生3个零的,但是笔者还是按照一个零来算,结果错误那是妥妥的。作者:邹欣 莫瑜 出处:《编程之美--微软技术面试心得》 原文地址:不要被阶乘吓倒zero_count=1024/5+1024/25+1024/125+1024/625至于为什么,请看下文。2.2转载 2014-09-24 15:22:54 · 925 阅读 · 0 评论 -
程序员编程艺术:第三章续、Top K算法问题的实现
程序员编程艺术:第三章续、Top K算法问题的实现 作者:July,zhouzhenren,yansha。 致谢:微软100题实现组,狂想曲创作组。 时间:2011年05月08日 微博:http://weibo.com/julyweibo 。 出处:http://blog.csdn.net/v_JULY_v 。 wiki:http转载 2014-09-26 14:14:06 · 522 阅读 · 0 评论 -
程序员编程艺术第一~二十二章集锦与总结(教你如何编程)
程序员编程艺术第一~二十二章集锦与总结(教你如何编程) 作者:July、编程艺术室。出处:http://blog.csdn.net/v_JULY_v 。题记 好久没更新博客了,虽只有一个月,但对我来说,已是长久。最重要的是11月初来北京后,在这近一个月找工作的过程中,面试、拜访、购书、读书,亦许久没有敲代码了,手异常生疏,虽只有一个月,但对我转载 2014-09-26 14:23:05 · 653 阅读 · 0 评论 -
程序员编程艺术:第四章、现场编写类似strstr/strcpy/strpbrk的函数
前奏 有网友向我反应,之前三章(http://t.cn/hgVPmH)的面试题目,是否有点太难了。诚如他所说,绝大部分公司的面试题不会像微软等公司的面试题目出的那么变态,或复杂。 面试考察的是你对基础知识的掌握程度,及编程能力是否过硬的一种检测,所以,扎实基础知识,提高编程能力,比去看什么所谓的面经,或去背面试题目的答案强多了。 很多中、小型公司自己的创造转载 2014-09-26 14:17:34 · 608 阅读 · 0 评论 -
从头到尾彻底解析Hash 表算法
本文转自:http://blog.csdn.net/v_JULY_v/article/details/6256463从头到尾彻底解析Hash 表算法作者:July、wuliming、pkuoliver 出处:http://blog.csdn.net/v_JULY_v。 说明:本文分为三部分内容, 第一部分为一道百度面试题Top K算法的详解;第转载 2014-09-14 17:33:46 · 461 阅读 · 0 评论 -
十道海量数据处理面试题与十个方法大总结
转自:http://blog.csdn.net/v_july_v/article/details/6279498海量数据处理:十道面试题与十个海量数据处理方法总结作者:July、youwang、yanxionglu。时间:二零一一年三月二十六日本文之总结:教你如何迅速秒杀掉:99%的海量数据处理面试题。有任何问题,欢迎随时交流、指正。出处:http://转载 2014-09-14 17:20:24 · 537 阅读 · 0 评论 -
海量数据处理之Bloom Filter详解
海量数据处理之Bloom Filter详解 前言 本博客内曾已经整理过十道海量数据处理面试题与十个方法大总结。接下来,本博客内会重点分析那些海量数据处理的方法,并重写十道海量数据处理的面试题。如果有任何问题,欢迎不吝指正。谢谢。一、什么是Bloom Filter Bloom Filter是一种空间效率很高的随机数据结构,它的原理是,当一个元素被加转载 2014-09-14 17:16:19 · 409 阅读 · 0 评论 -
教你如何迅速秒杀掉:99%的海量数据处理面试题
本文转自:http://blog.csdn.net/v_JULY_v 教你如何迅速秒杀掉:99%的海量数据处理面试题作者:July出处:结构之法算法之道blog前言 一般而言,标题含有“秒杀”,“99%”,“史上最全/最强”等词汇的往往都脱不了哗众取宠之嫌,但进一步来讲,如果读者读罢此文,却无任何收获,那么,我也甘愿背转载 2014-09-23 17:51:18 · 374 阅读 · 0 评论 -
C++ explicit构造函数----禁止隐式格式转换
explicit 禁止隐式转换 explicit 关键字只能用于类内部的构造函数声明上。在构造函数的实现中不需要再声明explicit如下例:Cpp代码 #include using namespace std; class A { public: int age; exp转载 2014-09-22 14:44:27 · 682 阅读 · 0 评论 -
程序员编程艺术第一~十章集锦与总结(教你如何编程)--持续更新中
程序员编程艺术第一~四十章集锦与总结--面试、算法、编程 作者:July、编程艺术室。出处:http://blog.csdn.net/v_JULY_v 。 围绕“面试”、“算法”、“编程”三个主题的程序员编程艺术系列(简称TAOPP系列)从今年4月写第一篇起,至今快有2个月。2个月的创作中,写了十章,共计13篇文章。这是本人的第4大原创作品,不过与之前微软面试转载 2014-09-26 14:15:32 · 492 阅读 · 0 评论 -
linux中可重入函数 sig_automaic
一、 POSIX 中对可重入和线程安全这两个概念的定义: Reentrant Function:A function whose effect, when called by two or more threads,is guaranteed to be as if the threads each executed the function one after an转载 2014-10-05 15:38:57 · 808 阅读 · 0 评论 -
epoll原理与应用详解
本文转自:http://blog.csdn.net/tianmohust/article/details/8502352epoll简介epoll 是Linux内核中的一种可扩展IO事件处理机制,最早在 Linux 2.5.44内核中引入,可被用于代替POSIX select 和 poll 系统调用,并且在具有大量应用程序请求时能够获得较好的性能( 此时被监视的文件描述符数目转载 2014-10-08 16:35:16 · 624 阅读 · 0 评论 -
秒杀多线程第二篇 多线程第一次亲密接触 CreateThread与_beginthreadex本质区别
本文转自:http://blog.csdn.net/morewindows/article/details/7421759转载 2014-10-08 15:04:14 · 477 阅读 · 0 评论