自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Victor-静心思行_踏足远方

一步一步走来的弱者,却一步一步超越了众多强者。

  • 博客(57)
  • 资源 (1)
  • 收藏
  • 关注

原创 C++获取礼拜一的时间戳

获取礼拜一的时间戳UINT64 GetWeekBeginTime(){  time_t t;  t = time(0);  tm* t_tm = localtime(&t);  t_tm->tm_hour = 0;  t_tm->tm_min = 0;  t_tm->tm_sec = 0;  t_tm->tm_wday = 0; 不生效  t = mktime(t_tm);  return (UINT64)t;}源码没有用到这个逻辑问题 从现网拉

2022-04-20 12:07:51 878

原创 python粘结shell监听端口设置

通过python粘接,替代了shell判断状态是否ok的步骤。简单方便#encoding=utf8import osimport timeimport socketimport commandsdef checktcp(ip,port,ser): cmdstra="netstat -atn|grep "+port (status, output) =...

2018-12-06 12:12:05 350

原创 C语言的启动与终止

一切都将的见。简易汇总如甘特图

2016-05-12 16:32:18 751

原创 一个简易的http服务器。

从代码逻辑我们可以很清晰的看出简单的http服务器锁遵循的框架,以及后台调用的过程 并在此,应用了,多进程,进程间通信的管道,以及网络通信socket的知识/************************************************************************* > File Name: httpd.c > Author:Victor Qi

2016-04-04 18:47:36 1378

转载 一些后台开发的基本问题(需要懂得)

Linux后台开发应该具备技能 一、linux和os: 1、命令:netstat tcpdump ipcs ipcrm 这四个命令的熟练掌握程度基本上能体现实际开发和调试程序的经验 2、cpu 内存 硬盘 等等与系统性能调试相关的命令必须熟练掌握,设置修改权限 tcp网络状态查看 各进程状态 抓包相关等相关命令 必须熟练掌握 3、awk sed需掌握 4、共享内存的使用实现原理、然后共享

2016-04-02 12:05:16 1207

转载 堆和栈的区别

一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态区)(st

2016-04-02 11:32:12 452

原创 WEB服务器、应用程序服务器、HTTP服务器区别

WEB服务器、应用程序服务器、HTTP服务器区别  WEB服务器、应用程序服务器、HTTP服务器有何区别?IIS、Apache、Tomcat、Weblogic、WebSphere都各属于哪种服务器,这些问题困惑了很久,今天终于梳理清楚了:Web服务器的基本功能就是提供Web信息浏览服务。它只需支持HTTP协议、HTML文档格式及URL。与客户端的网络浏览器配合。因为Web服务器主要支持的协议就是HT

2016-03-31 19:45:30 953

原创 典型的进程间通信IPC问题-生产者消费者问题

本实例详细解释了生产者消费者问题的简易模型,对于同步互斥以及多线程处理此问题提出了一个较好的解决方案。#include <stdio.h>#include <pthread.h>#define MAX 10000000000 //定义缓冲区数量,就是生产品数量pthread_mutex_t the_mutex;pthread_cond_t condc,condp;int buf

2016-03-30 01:35:20 1129

原创 基础之快速排序(霍尔排序)

#include<stdio.h>void quicksort(int *array,int left,int right){ int i,j int t; int temp; if(left>right||array==NULL) return -1; temp=array[left]; i=left; j=right;

2016-03-29 00:12:41 3440

原创 leetcode反转链表

要点,三个标识指针,来回交换,将遍历到的节点放在首节点头部。//leetcode反转反转链表struct ListNode*reverselist(struct ListNode*Node){ if(!Node||!Node->next)//判断前提条件,传进来的指针是否为空 return Node; struct ListNode *p=Node,*pnext

2016-03-28 23:06:11 469

原创 arpa/inet.h

从man手册获取到的inet.h信息。在linux下网络编程程中常用头文件,主要是信息转换,将客户端信息,转换为字符串信息。<arpa/inet.h>(0P) POSIX Programmer's Manual <arpa/inet.h>(0P)NAME arpa/inet.h - definitions for internet operationsSY

2016-03-25 00:48:33 17012

原创 对于sizeof的用法测试

如果你不懂sizeof的用法,我想看了这个代码你就会一清二楚,甚至不用讲解。 话不多说:上代码~~~/************************************************************************* > File Name: Testsizeof.c > Author:Victor Qi > Mail:Victor_QiG

2016-03-07 22:58:02 447

原创 APUE之对于系统中缺失的error.c文件的阶段性总结

大多数人在学习APUE过程中都会受到缺失apue.h和error.c文件的困扰本文意指在学习完整个APUE的过程中对于error.c 文件由原官方文件的基础上做出的N次扩充,也就是说在以后的学习中,基本上所有代码的包含了apue.h的时候,也会利用到error.c文件。如若不信,我把github地址放在这里(https://github.com/VVictorQi/APUE你可以将我的代码拷过去进行学习

2016-02-26 23:25:34 775

原创 python之干什么可以走的路线

pickle腌制loads函数将序列化的对象原样返回python RESTful API 概述展示微博开放平台的RESTfulRESTful设计原则1 Uniform interface 2 无状态 Stateless3 Cacheable 可缓存的4 Client-Sever 客户端服务端分离5 Layered System 分层系统6 Code on Demand 按需编码

2016-02-26 23:07:11 650

原创 关于APUE第十六章的客户端程序返回Servname not supported for ai_socktype错误的解决方法

出现这种错误的原因是因为没有给服务分配端口号,可以手动添加端口号,就是在/etc/services文件里加上一行:使用vi /ect/services 按住Shift+G跳到最后一行,按住i进入插入模式,进行编辑 ruptime 39001/tcp ruptime 是服务名,就是getaddrinfo的第二个参数名,而不是程序名。39001是分配的端口号,可以任意,但不要与

2016-02-22 02:30:27 9824 1

转载 使用消息队列的 10 个理由--IPC通信

过去几年中,我们一直在使用、构建和宣传消息队列,我们认为它们是很令人敬畏的,这也不是什么秘密。我们相信对任何架构或应用来说,消息队列都是一个至关重要的组件,下面是十个理由:1 . 解耦在项目启动之初来预测将来项目会碰到什么需求,是极其困难的。消息队列在处理过程中间插入了一个隐含的、基于数据的接口层,两边的处理过程都要实现这一接口。这允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束

2016-02-20 02:16:10 857

原创 阿里云Centos下安装mysql找不到mysql-sever安装包的解决方案

解决方案采用yum源安装,yum install mysql mysql-sever mysql-client很多教程上都这么写,实际上也是对的,对于大多数centos系统默认源来讲,确实如此。但是在阿里云服务器上,默认是阿里云自己配置的yum源 ,所以上述方法就会出问题,因为人家的yum源里面根本就没有这些东西。可能是包名改了吧,反正不是我们熟悉的那些。

2016-02-14 13:13:39 2966

转载 Python元编程-遗忘的远古凶兽

元编程黑魔法防御元编程是一种黑魔法,正派人士都很畏惧。——张教主何谓元编程编写一个程序,能够操纵,改变其他程序,这就是元编程 最简单的来说,C的宏就是元编程的一种 元编程的另一大代表则是lisp的宏 虽然不常见,但是汇编级别也是可以元编程的,例如可执行文件压缩 如果源语言和目标语言一样,就是我们最常见的反射 元编程的几种形式文本宏语言,C宏,M4,Flex,Bison,Gperf

2016-02-05 02:54:41 2240

原创 Python学习之面向对象

#当机械有了思想,当对象有了灵魂#面向对象最大的概念就是类和实例,类是抽象的模板#Python中对于变量数据的隐藏利用开头双下划线class People(object): def __init__(self,name,age,sex): self.__name=name self.__age=age self.__sex=sex

2016-02-05 02:36:54 496

原创 Python学习基础之函数

当出现函数的时候世界的曙光出现了,重复的事情变得简单 def move(x, y, step, angle=0): nx = x + step * math.cos(angle) ny = y - step * math.sin(angle) return nx, ny

2016-02-04 18:29:01 940

原创 Python学习-快速了解python基本特性

python基础

2016-02-04 15:23:00 516

转载 编译器的工作过程-节选自阮一峰的博文中并加以整理

来源: 阮一峰的网络日志 原文: http://www.ruanyifeng.com/blog/2014/11/compiler.html比如,下面这段源码(假定文件名叫做test.c)。#include <stdio.h>int main(void){ fputs("Hello, world!\n", stdout); return 0;}要先用编译器处理一下,才能运行。$

2016-02-03 20:33:16 649 1

原创 UNIX环境高级编程__针对apue.h找不到的情况以及log错误信息输出的问题

今天开始进行UNIX环境高级编程的额学习之旅,刚开始的额代码中就发现apue.h找不到,本来还以为他是系统文件,但后来看了下格式,确定不是系统文件,是原作者写的头文件,目的是为了避免以后重复的头文件书写,提高代码复用在运行《unix环境高级编程》这本书中的程序时,编译器会提示没有apue.h这个头文件。apue.h是作者自定义的一个头文件,包括程序所需的常用头文件及出错处理函数,所以应该将它放入系

2016-01-02 01:57:50 1343 1

原创 C++primer_拷贝控制之13.26联系控制成员实现类值行为

这是StrBlob.h头文件,所有函数均定义为内联函数#ifndef _MY_STRBLOB_H#define _MY_STRBLOB_H#include<vector>#include<string>#include<initializer_list>#include<memory>#include<stdexcept>using namespace std;clas

2015-12-15 01:23:44 433

原创 C++primer--拷贝控制__构造函数和析构函数的执行时期

#include<iostream>#include<vector>using namespace std;struct X{ X() { cout << "这里是构造函数X()" << endl; } X(const X&) { cout << "这里是拷贝构造函数" << endl; } X&operator =(const X&rhs) { cout << "这

2015-12-14 21:46:58 448

原创 UML初识__基本图元

学习了uml,我觉得总结一下基本的图还是不错的 ,我将它化作了思维导图,放在这里,以供使用。基本uml图就在下面的图中了,这个图主要参考计算机科学导论中,一节简单的内容介绍,对此,如果而现在最新版本的uml是2.0结构,图上的uml构造图,采用的是开源uml软件WhiteStarUml绘制,由于本人水平有限,只能将图绘制简单,一边理解,一边画图,在此,如有错误,请谅解。

2015-12-05 18:22:13 563

原创 C++primer_关联容器之map

针对C++primer中关联容器11.9的问题先来一道程序看看吧。程序如下如题目要求是定义一个map,将单词与一个行号的list关联,list中保存单词出现的行号、现在继续//定义一个map,将单词与一个行号的list关联,list中保存单词出现的行号//map<string,list<int>>word_lineno#include <iostream>#include<fstream>#

2015-12-02 23:14:30 561

原创 一步一步熟知设计模式--初识

设计模式-初识–对于设计模式早已神往已久,有幸得来设计模式:可复用的面向对象软件的基础。决定花点时间学习学习。刚开始,对于这本书有个总体概念,思维导图是利用xmind制作,当然市面上还有其他类似的软件。我觉得下面的还是很棒的,就一直用的这个。对于设计模式,根据两条准则对模式进行划分,第一是目的准则:模式是用来干什么的,完成什么工作的。那么根据其目的可以划分为创建型、结构型、或者行为型 创建型:创建

2015-11-30 17:43:19 414

原创 C++primer__泛型算法-泛型算法结构

对于泛型算法后期的一个总结,属于思维导图,知识点汇总

2015-11-26 20:41:03 616

原创 C++primer_泛型算法-插入迭代器和iostream迭代器

三种插入迭代器的区别? 插入迭代器本质上是一种适配器迭代器,标准库为了保证通用性,并不直接操作容器,而是通过迭代器间接操作容器,因此,算法不具备直接向容器插入元素的能力,而插入器正是帮助算法实现向容器内插入元素的机制。除了 back_inserter,标准库还提供了front_inserter和inserter,三者的差异主要在如何向容器内插入元素back_inserter是通过用push_b

2015-11-26 17:20:16 460

原创 C++primer--lambda表达式-参数绑定之bind

在绑定参数这一节,C++11有了新的特性,由于旧版本的绑定参数的语言特性限制更多,也更复杂,所以标准库定义了两个分别名为bind1st和bind2nd的函数,类似bind,这两个函数接受一个函数作为参数,生成一个新的可调用对象,该对象调用给定函数,并将绑定的参数传递给他。但是这些函数分别只能绑定第一个或第二个参数。由于这些函数局限太强,在新标准中已被弃用(deprecated).所谓被起用的特性就

2015-11-13 18:10:37 578

原创 C++primer--泛型算法初识

在这里,我想说的重点是对于泛型算法,他的特点是不直接操纵容器,这是最主要的特点,这也就意味着他不会直接对容器进行操作。 例如容器的增删改移,算法接受的是迭代器,对迭代以及接收到的迭代器范围元素进行算法处理,而在这个过程中,就算容器发生了元素的增删改移的事件,算法对容器也不负责,主要是迭代器的责任,这也是算法的特殊之处。前两个小节的主要算法如下: #include<iostream>

2015-11-11 02:14:58 186

原创 C++primer--stack处理括号表达式(顺序容器)

这是最后一个大题 9-51,通过栈来处理括号化的表达式,题目算是一道经典的例题,我看代码,特别不容易理解,当然,掌握了关键的几个点,程序调理就很清晰了,如果你在做这道题的时候不理解,这个时候可以通过单步调试,一步一步看这段代码的运行过程,一遍一遍的来,慢慢的就可以知道他到底是怎么运行的了。简易代码如下#include<iostream>#include<string>#include<sta

2015-11-10 00:31:54 1008

原创 黑客帝国之酷炫屏保数字雨

本程序vs2013 测试通过,不排除其他测试通过用例,主要是windows API的应用#include <windows.h> #define ID_TIMER 1 #define STRMAXLEN 25 //一个显示列的最大长度 #define STRMINLEN 8 //一个显示列的最小长度 LRESULT CALLBACK WndProc(HWND, UINT, WPARA

2015-11-09 22:52:28 2189

原创 C++primer_顺序容器之string操作

本例以代码形式整理了C++primer第九章string操作的基本函数方法,其中每个函数 的作用在代码注释中解释到位,若是仍有疑惑,请仔细阅读课本习题#include <iostream>#include<string>#include<vector>using namespace std;void replace_string(string &s, const string &oldVa

2015-11-09 22:08:33 494

原创 对于重载new函数所遇到的问题记录

出现的问题bad_alloc(); 在这里G++里面没有bad_alloc(const char * _Message)构造函数#include<iostream>//#include<memory>#include<cstdlib>using namespace std;void *operator new(size_t size){ void *p = NULL;

2015-11-08 14:39:23 506

原创 VS-注释技巧

以前经验不足,对于注释,虽然知道有几种,但是至始至终在vs里面除了快捷键注释//外就不会其他了。偶尔出现自动化了一下/**/,却不知道怎么弄后来机缘巧合,被我使了出来。//此注释通过手动输入但也只是针对一行如果针对于多行怎么弄? void input_string(string&s) { s.reserve(100); char c;

2015-11-08 02:09:29 773

原创 顺序容器--字符串操作

对于字符串string的额外操作 s.substr(pos,n) 返回一个string包含从pos开始的n个字符串的拷贝。pos默认为0. n的默认值为s.size()-pos,就是拷贝从pos开始的所有字符const char *cp = "Hello world!!!!";char noNuLL[] = { 'H', 'i' };string s1(cp);string s

2015-11-06 01:53:33 511

原创 容器操作--管理迭代器

管理迭代器 –当使用迭代器或指向容器元素的引用时,最小化要求迭代器必须保持有效的程序片段 –由于向迭代器添加元素时或者删除元素的时候可能会使迭代器失效,因此在容器内做插入删除等操作的时必须重新定位迭代器位置对于vector 、deque、string等线性存储结构尤为重要,但是对于链式存储不影响,他的迭代器,指针和引用都不会失效。如果在一个循环中插入或者删除deque、string、或者vec

2015-11-05 18:27:22 550

原创 顺序容器--添加及访问元素

#include<iostream>#include <vector>#include<string>#include <list>#include <deque>#include<forward_list>using namespace std;int main(int argc, char**argv){ list<string>slist; slist.inse

2015-11-05 02:02:13 452

空空如也

空空如也

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

TA关注的人

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